Podcasts about commonjs

  • 32PODCASTS
  • 44EPISODES
  • 50mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Mar 20, 2025LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about commonjs

Latest podcast episodes about commonjs

PodRocket - A web development podcast from LogRocket
Moving to ESM from CJS with Anthony Fu

PodRocket - A web development podcast from LogRocket

Play Episode Listen Later Mar 20, 2025 25:10


Anthony Fu, Framework Developer at Nuxt Labs, discusses the shift to ESM-only formats in JavaScript development. He covers the controversy surrounding ESM, the advantages of moving from CJS to ESM, and what this transition means for the future of web development. Tune in to learn why now is the ideal time for this change, and how it benefits developers! Links https://antfu.me https://bsky.app/profile/antfu.me https://github.com/antfu https://x.com/antfu7 https://www.linkedin.com/in/antfu https://antfu.me/posts/move-on-to-esm-only We want to hear from you! How did you find us? Did you see us on Twitter? In a newsletter? Or maybe we were recommended by a friend? Let us know by sending an email to our producer, Emily, at emily.kochanekketner@logrocket.com (mailto:emily.kochanekketner@logrocket.com), or tweet at us at PodRocketPod (https://twitter.com/PodRocketpod). Follow us. Get free stickers. Follow us on Apple Podcasts, fill out this form (https://podrocket.logrocket.com/get-podrocket-stickers), and we'll send you free PodRocket stickers! What does LogRocket do? LogRocket provides AI-first session replay and analytics that surfaces the UX and technical issues impacting user experiences. Start understand where your users are struggling by trying it for free at [LogRocket.com]. Try LogRocket for free today.(https://logrocket.com/signup/?pdr) Special Guest: Anthony Fu.

Les Cast Codeurs Podcast
LCC 319 - le ramasse-miettes-charognes

Les Cast Codeurs Podcast

Play Episode Listen Later Dec 16, 2024 70:05


Dans cet épisde en audio et en vidéo (youtube.com/lescastcodeurs), Guillaume et Emmanuel discutent des 15 ans de Go, d'une nouvelle approche de garbage collecting, de LLMs dans les applications Java, dobservabilité, d'une attaque de chaine d'approvisionnement via javac et d'autres choses. Enregistré le 13 décembre 2024 Téléchargement de l'épisode LesCastCodeurs-Episode-319.mp3 News Langages Go fête son 15ème anniversaire ! https://go.dev/blog/15years discute les 15 ans la corrections de gotchas dans les for loops (notamment les variables étaient loop scoped) le fait que la compile echoue si on attend une version de go superieure seulement depuis go 1.21 en parallele de la gestion de la chaine d'outil (c'est en 2023 seulement!) opt-in telemetrie aussi recent Construire OpenJDK à partir des sources sur macOS https://www.morling.dev/blog/building-openjdk-from-source-on-macos/ de maniere surprenante ce n'est pas tres compliqué Papier sur l'aproche Mark-scavenge pour un ramasse miette https://inside.java/2024/11/22/mark-scavenge-gc/ papier de recherche utiliser l'accessibilité pour preuve de vie n'est pas idéal: un objet peut etre atteignable mais ne sera jamais accedé par le programme les regions les plus pauvres en objets vivant voient leurs objets bouger dans uen autre region et la regio libéré, c'est le comportement classique des GC deux methodes: mark evaguate qui le fait en deux temps et la liveness peut evoluer ; et scavenge qui bouge l'objet vivant des sa decouverte ont fait tourner via ZGC des experience pour voir les objects consideres vivants et bougés inutilement. resultats montrent un gros taux d'objets bougés de maniere inutile proposent un algo different ils marquent les objets vivants mais ne les bougent pas avant le prochain GC pour leur donner une change de devenir unreachable elimine beaucoup de deplacement inutiles vu que les objets deviennent non accessible en un cycle de GC jusquà 91% de reduction ! Particulierement notable dans les machines chargées en CPU. Les tokens d'accès court ou longs https://grayduck.mn/2023/04/17/refresh-vs-long-lived-access-tokens/ pourquoi des long access tokens (gnre refresh token) sont utilises pour des short lived dans oauth 2.0 refresh token simplifient la revocation: vu que seul le auth serveur a a verifier la révocation et les clients vérifient l'expiration et la validité de la signature refresh token ne sont envoyés que entre endpoints alors que les access tokens se baladent pas mal: les frontières de confiance ne sont pas traversées refresh token comme utilise infréquement, et donc peut etre protegee dans une enclave les changements de grants sont plus simple tout en restant distribuable histoire des access refresh token et access token permet de mieux tracer les abus / attaques les inconvenients: c'est plus compliqué en flow, the auth serveur est un SPOF amis mitigeable Java Advent est de retour https://www.javaadvent.com/calendar backstage Java integrite par defaut (et ses consequences sur l'ecosysteme) timefold (sovler) Les extensions JUNit 5 OpenTelemetry via Java Agent vs Micrometer analyse statique de code CQRS et les fonctionalités modernes de Java java simple (sans compilatrion, sans objet fullstack dev with quarkus as backend José Paumard introduit et explique les Gatherers dans Java 24 dans cette vidéo https://inside.java/2024/11/26/jepcafe23/ Librairies Micronaut 4.7, avec l'intégration de LangChain4j https://micronaut.io/2024/11/14/micronaut-framework-4-7-0-released/ Combiner le framework de test Spock et Cucumber https://www.sfeir.dev/back/spock-framework-revolutionnez-vos-tests-unitaires-avec-la-puissance-du-bdd-et-de-cucumber/ les experts peuvent écrire leurs tests au format Gherkin (de Cucumber) et les développeurs peuvent implémenter les assertions correspondantes avec l'intégration dans Spock, pour des tests très lisibles Spring 6.2 https://spring.io/blog/2024/11/14/spring-framework-6-2-0-available-now beans @Fallback améliorations sur SpELet sur le support de tests support de l'echape des property placeholders une initioalisation des beans en tache de fond nouvelle et pleins d'autres choses encore Comment créer une application Java LLM tournant 100% en Java avec Jlama https://quarkus.io/blog/quarkus-jlama/ blog de Mario Fusco, Mr API et Java et Drools utilise jlama + quarkus + langchain Explique les avantage de l'approche pure Java comme le cycle de vie unique, tester les modeles rapidement, securite (tout est in process), monolithe ahahah, observabilité simplifiée, distribution simplifiée (genre appli embarquée) etc Vert.x 5 en seconde incubation https://vertx.io/blog/eclipse-vert-x-5-candidate-2-released/ Support des Java modules (mais beacoup des modules vert.x eux-même ne le supportent pas support io_uring dans vert.x core le load balancing côté client le modele des callbacks n'est plus supporté, vive les Futur beaucoup d'améliorations autour de gRPC et d'autres choses Un article sur Spring AI et la multi modalite audio https://spring.io/blog/2024/12/05/spring-ai-audio-modality permet de voir les evolutions des APIs de Spring AI s'appluie sur les derniers modeles d'open ai des examples comme par exemple un chatbot voix et donc comment enregistrer la voix et la passer a OpenAI Comment activer le support experimental HTTP/3 dans Spring Boot https://spring.io/blog/2024/11/26/http3-in-reactor-2024 c'ets Netty qui fait le boulot puis Spring Netty l'article décrit les etapes pour l'utiliser dans vos applis Spring Boot ou Spring Cloud Gateway l'article explique aussi le cote client (app cliente) ce qui est sympa Infrastructure Un survol des offres d'observabilité http://blog.ippon.fr/2024/11/18/observabilite-informatique-comprendre-les-bases-2eme-partie/ un survol des principales offres d'observabilité Open source ou SaaS et certains outsiders Pas mal pour commencer à défricher ce qui vous conviendrait blog de ippon Web Sortie de Angular 19 https://blog.ninja-squad.com/2024/11/19/what-is-new-angular-19.0/ stabilité des APIs Signal APIs migration automatique vers signals composants standalone par défaut nouvelles APIs linkedSignal et resource de grosses améliorations de SSR et HMR un article également de Sfeir sur Angular 19 https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/ Angluar 19 https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/ composant standalone par default (limiter les problemes de dependances), peut le mettre en strict pour le l'imposer (ou planter) signalement des imports inutilisés @let pour les variables locales dans les templates linkedSignal (experimental) pour lier des signaux entre eux (cascade de changement suite a un evenement hydratation incrementale (contenu progressivement interactif avec le chargement - sur les parties de la page visible ou necessaires et event replay, routing et modes de rendu en rendy hybride, Hot module replacement etc The State of Frontend — dernière compilation des préférences des développeurs en terme de front https://tsh.io/state-of-frontend/ React en tête, suivi de Vue et Svelte. Angular seulement 4ème Côté rendering framework, Next.js a la majorité absolue, ensuite viennent Nuxt et Astro Zod est la solution de validation préférée Pour la gestion de date, date-fns est en tête, suivi par moment.js Côté state management, React Context API en première place, mais les suivants sont tous aussi pour React ! Grosse utilisation de lodash pour plein d'utilités Pour fetcher des resources distantes, l'API native Fetch et Axios sont les 2 vaincoeurs Pour le déploiement, Vercel est premier Côté CI/CD, beaucoup de Github Actions, suivi par Gitlab CI Package management, malgré de bonnes alternatives, NPM se taille toujours la part du lion Ecrasante utilisation de Node.js comme runtime JavaScript pour faire du développement front Pour ce qui est du typing, beaucoup utilisent TypeScript, et un peu de JSdoc, et la majorité des répondants pensent que TypeScript a dépassé JavaScript en usage Dans les API natives du navigateur, Fetch, Storage et WebSockets sont les APIs les plus utilisées La popularité des PWA devrait suivre son petit bonhomme de chemin En terme de design system, shadcn.ui en tête, suivi par Material, puis Bootstram Pour la gestion des styles, un bon mix de plain old CSS, de Tailwind, et de Sass/CSS Jest est premier comme framework de tests Les 3/4 des développeurs front utilisent Visual Studio Code, quant au quart suivant, c'est JetBrains qui raffle les miettes Pour le build, Vite récolte les 4/5 des voix ESLint et Prettier sont les 2 favoris pour vérifier le code   Parfois, on aimerait pouvoir tester une librairie ou un framework JavaScript, sans pour autant devoir mettre en place tout un projet, avec outil de build et autre. Julia Evans explore les différents cas de figure, suivant la façon dont ces librairies sont bundlées https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/ Certaines librairies permette de ne faire qu'un simple import dans une balise script Certaines frameworks sont distribués sous forme d'Universal Module Definition, sous CommonJS, d'ESmodule franchemet en tant que noob c'est compliqué quand même Data et Intelligence Artificielle L'impact de l'IA en entreprise et des accès aux documents un peu laxistes https://archive.ph/uPyhX l'indexing choppe tout ce qu'il peut et l'IA est tres puissante pour diriger des requetes et extraires les données qui auraient du etre plus restreintes Différentes manières de faire de l'extraction de données et de forcer la main à un LLM pour qu'il génère du JSON https://glaforge.dev/posts/2024/11/18/data-extraction-the-many-ways-to-get-llms-to-spit-json-content/ l'approche “je demande gentiment” au LLM, en faisant du prompt engineering en utilisant du function calling pour les modèles supportant la fonctionnalité, en particulier avant les approches de type “JSON mode” ou “JSON schema” ou effectivement si le modèle le supporte aussi, toujours avec un peu de prompting, mais en utilisant le “JSON mode” qui force le LLM a générer du JSON valide encore mieux avec la possibilité de spécifier un schema JSON (type OpenAPI) pour que le JSON en sortie soit “compliant” avec le schéma proposé Comment masquer les données confidentielles avec ses échanges avec les LLMs https://glaforge.dev/posts/2024/11/25/redacting-sensitive-information-when-using-generative-ai-models/ utilisation de l'API Data Loss Prevention de Google Cloud qui permet d'identifier puis de censurer / masquer (“redacted” en anglais) des informations personnelles identifiables (“PII”, comme un nom, un compte bancaire, un numéro de passeport, etc) pour des raison de sécurité, de privacy, pour éviter les brèche de données comme on en entend trop souvent parler dans les nouvelles On peut utiliser certains modèles d'embedding pour faire de la recherche de code https://glaforge.dev/posts/2024/12/02/semantic-code-search-for-programming-idioms-with-langchain4j-and-vertex-ai-embedding-models/ Guillaume recherche des bouts de code, en entrant une requête en langue naturel Certains embedding models supportent différents types de tâches, comme question/réponse, question en langue naturelle / retour sous forme de code, ou d'autres tâches comme le fact checking, etc Dans cet article, utilisation du modèle de Google Cloud Vertex AI, en Java, avec LangChain4j Google sort la version 2 de Gemini Flash https://blog.google/technology/google-deepmind/google-gemini-ai-update-december-2024/ La nouvelle version Gemini 2.0 Flash dépasse même Gemini 1.5 Pro dans les benchmarks Tout en étant 2 fois plus rapide que Gemini 1.5 Pro, et bien que le prix ne soit pas encore annoncé, on imagine également plus abordable Google présente Gemini 2 comme le LLM idéal pour les “agents” Gemini propose une vraie multimodalité en sortie (premier LLM sur le marché à le proposer) : Gemini 2 peut entrelacer du texte, des images, de l'audio Gemini 2 supporte plus de 100 langues 8 voix de haute qualité, assez naturelles, pour la partie audio Un nouveau mode speech-to-speech en live, où on peut même interrompre le LLM, c'est d'ailleurs ce qui est utilisé dans Project Astra, l'application mobile montrée à Google I/O qui devient un vrai assistant vocale en live sur votre téléphone Google annonce aussi une nouvelle expérimentation autour des assistants de programmation, avec Project Jules, avec lequel on peut discuter en live aussi, partager son code, comme un vrai pair programmeur Google a présenté Project Mariner qui est un agent qui est sous forme d'extension Chrome, qui va permettre de commander votre navigateur comme votre assistant de recherche personnel, qui va être capable de faire des recherches sur le web, de naviguer dans les sites web, pour trouver les infos que vous recherchez Cet autre article montre différentes vidéos de démos de ces fonctionnalités https://developers.googleblog.com/en/the-next-chapter-of-the-gemini-era-for-developers/ Un nouveau projet appelé Deep Research, qui permet de faire des rapports dans Gemini Advanced : on donne un sujet et l'agent va proposer un plan pour un rapport sur ce sujet (qu'on peut valider, retoucher) et ensuite, Deep Research va effectuer des recherches sur le web pour vous, et faire la synthèse de ses recherches dans un rapport final https://blog.google/products/gemini/google-gemini-deep-research/ Enfin, Google AI Studio, en plus de vous permettre d'expérimenter avec Gemini 2, vous pourrez aussi utiliser des “starter apps” qui montrent comment faire de la reconnaissance d'objet dans des images, comment faire des recherches avec un agent connecté à Google Maps, etc. Google AI Studio permet également de partager votre écran avec lui, en mobile ou en desktop, de façon à l'utiliser comme un assistant qui peut voir ce que vous faites, ce que vous coder et peut répondre à vos questions Méthodologies Un article de GitHub sur l'impact de la surutilisation des CPU sur la perf de l'appli https://github.blog/engineering/architecture-optimization/breaking-down-cpu-speed-how-utilization-impacts-performance/ c'est surprenant qu'ils ont des effets des 30% de perf c'est du a la non limit thermique, au boost de frequece qui en suit ils ont donc cherché le golden ratio pour eux autour de 60% ils prennent des morceaux de cluster kube poru faire tourner les workloads et ajoutent des wqorkload CPU artificiels (genre math) Sécurité Attaque de la chaîne d'approvisionnement via javac https://xdev.software/en/news/detail/discovering-the-perfect-java-supply-chain-attack-vector-and-how-it-got-fixed s'appuie sur l'annotation processeur l'annotation processors des dependances est chargé et executé au moment du build du projet et cherche les annotations processor dans le user classpath (via le pattern serviceloader) et donc si la dependance est attaquée et un annotation processor est ajouté ou modifié on a un vecteur d'attaque au moment de la compilation du projet ciblé des qu'on deparre l'IDE en gros workaround, activer -proc:none et activer les annotation processors explicitly dans votre outil de build certaines améliorations dans le JDK: le compilateur note qu'il execute un annotation processor dans java 23+ les annotation processors sont deactivés par defaut Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 19 décembre 2024 : Normandie.ai 2024 - Rouen (France) 20 janvier 2025 : Elastic{ON} - Paris (France) 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 24-25 janvier 2025 : Agile Games Île-de-France 2025 - Paris (France) 30 janvier 2025 : DevOps D-Day #9 - Marseille (France) 6-7 février 2025 : Touraine Tech - Tours (France) 21 février 2025 : LyonJS 100 - Lyon (France) 28 février 2025 : Paris TS La Conf - Paris (France) 20 mars 2025 : PGDay Paris - Paris (France) 20-21 mars 2025 : Agile Niort - Niort (France) 25 mars 2025 : ParisTestConf - Paris (France) 26-29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France) 28 mars 2025 : DataDays - Lille (France) 28-29 mars 2025 : Agile Games France 2025 - Lille (France) 3 avril 2025 : DotJS - Paris (France) 10-11 avril 2025 : Android Makers - Montrouge (France) 10-12 avril 2025 : Devoxx Greece - Athens (Greece) 16-18 avril 2025 : Devoxx France - Paris (France) 29-30 avril 2025 : MixIT - Lyon (France) 7-9 mai 2025 : Devoxx UK - London (UK) 16 mai 2025 : AFUP Day 2025 Lille - Lille (France) 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France) 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France) 24 mai 2025 : Polycloud - Montpellier (France) 5-6 juin 2025 : AlpesCraft - Grenoble (France) 11-13 juin 2025 : Devoxx Poland - Krakow (Poland) 12-13 juin 2025 : Agile Tour Toulouse - Toulouse (France) 12-13 juin 2025 : DevLille - Lille (France) 24 juin 2025 : WAX 2025 - Aix-en-Provence (France) 26-27 juin 2025 : Sunny Tech - Montpellier (France) 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France) 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online 2-3 octobre 2025 : Volcamp - Clermont-Ferrand (France) 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium) 16-17 octobre 2025 : DevFest Nantes - Nantes (France) 6 novembre 2025 : dotAI 2025 - Paris (France) 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco) 23-25 avril 2026 : Devoxx Greece - Athens (Greece) 17 juin 2026 : Devoxx Poland - Krakow (Poland) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

Front-End Fire
News: Deno 2.0, Web Components on the Server, and WordPress Drama

Front-End Fire

Play Episode Listen Later Sep 30, 2024 43:46


This episode kicks off with the new Deno 2 release candidate. V2 boasts improved dependency management, updates to the APIs and CLI, and improved CommonJS support because even though ESM is the future, so much good stuff in the JS ecosystem still runs on CJS. Web Components take a big step forward in terms of wider spread adoption with the adoption of the Declarative Shadow DOM by all major browsers back in August. The Shadow DOM (a Web Components standard) provides a way to scope CSS styles to a specific DOM subtree and isolate the subtree so the element can be reused without fear of script conflicts or unexpected CSS cascades. But it only worked on the client side. The Declarative Shadow DOM removes this limitation and now things like SSR, streaming data, and server rendering styles are possible.Because the web development world can never be without some good drama going down, we now present for your viewing pleasure: the drama between WordPress and WP Engine.News:Paige - Declarative Shadow DOM for Web ComponentsJack - Deno 2 release candidateTJ - Wordpress vs WP Engine dramaBonus News:We're on Bluesky now @front-end-fire.com! Follow us!Cloudflare AI AuditOpenAI departuresState of HTML surveyFire Starters:autocomplete attributeWhat Makes Us Happy this Week:Paige - Stuff You Should Know podcastJack - Actual typewriters at The Type Space storeTJ - Detroit TigersThanks as always to our sponsor, the Blue Collar Coder channel on YouTube. You can join us in our Discord channel, explore our website and reach us via email, or Tweet us on X @front_end_fire.Front-end Fire websiteBlue Collar Coder on YouTubeBlue Collar Coder on DiscordReach out via emailTweet at us on X @front_end_fireFollow us on Bluesky @front-end-fire.com

Giant Robots Smashing Into Other Giant Robots
503: Epic Web and Remix with Kent C. Dodds

Giant Robots Smashing Into Other Giant Robots

Play Episode Listen Later Dec 7, 2023 67:15


Kent C. Dodds, a JavaScript engineer and teacher known for Epic Web Dev and the Remix web framework, reflects on his journey in tech, including his tenure at PayPal and his transition to full-time teaching. Kent's passion for teaching is a constant theme throughout. He transitioned from corporate roles to full-time education, capitalizing on his ability to explain complex concepts in an accessible manner. This transition was marked by the creation of successful online courses like "Testing JavaScript and Epic React," which have significantly influenced the web development community. An interesting aspect of Kent's career is his involvement with Remix, including his decision to leave Shopify (which acquired Remix) to return to teaching, which led to the development of his latest project, Epic Web Dev, an extensive and innovative web development course. This interview provides a comprehensive view of Kent C. Dodds's life and career, showcasing his professional achievements in web development and teaching, his personal life as a family man, and his unique upbringing in a large family. Epic Web (https://www.epicweb.dev/) Remix (https://remix.run/) Follow Kent C. Dodds on LinkedIn (https://www.linkedin.com/in/kentcdodds/) or X (https://twitter.com/kentcdodds). Visit his website at kentcdodds.com (https://kentcdodds.com/). Follow thoughtbot on X (https://twitter.com/thoughtbot) or LinkedIn (https://www.linkedin.com/company/150727/). Become a Sponsor (https://thoughtbot.com/sponsorship) of Giant Robots! Transcript: WILL: This is the Giant Robots Smashing Into Other Giant Robots podcast, where we explore the design, development, and business of great products. I'm your host, Will Larry. And with me today is Kent C. Dodds. Kent is a JavaScript engineer and teacher. He has recently released a massive workshop called epicweb.dev. And he is the father of four kids. Kent, thank you for joining me. KENT: Thank you so much for having me. It's an honor to be here. WILL: Yeah. And it's an honor for me to have you. I am a huge fan. I think you're the one that taught me how to write tests and the importance of it. So, I'm excited to talk to you and just pick your brain and learn more about you. KENT: Oh, thank you. WILL: Yeah. So, I just want to start off just: who is Kent? What do you like to do? Tell us about your family, your hobbies, and things like that. KENT: Yeah, sure. So, you mentioned I'm the father of four kids. That is true. We are actually expecting our fifth child any day now. So, we are really excited to have our growing family. And when I'm not developing software or material for people to learn how to develop software, I'm spending time with my family. I do have some other hobbies and things, but I try to share those with my family as much as I can. So, it's starting to snow around here in Utah. And so, the mountains are starting to get white, and I look forward to going up there with my family to go skiing and snowboarding this season. During the summertime, I spend a lot of time on my one-wheel just riding around town and bring my kids with me when I can to ride bikes and stuff, too. So, that's sort of the personal side of my life. And then, professionally, I have been in this industry developing for the web professionally for over a decade. Yeah, web development has just worked out super well for me. I kind of focused in on JavaScript primarily. And when I graduated with a master's degree in Information Systems at Brigham Young University, I started working in the industry. I bounced around to a couple of different companies, most of them you don't know, but you'd probably be familiar with PayPal. I was there for a couple of years and then decided to go full-time on teaching, which I had been doing as, like, a part-time thing, or, like, on the side all those years. And yeah, when teaching was able to sustain my family's needs, then I just switched full-time. So, that was a couple of years ago that I did that. I think like, 2018 is when I did that. I took a 10-month break to help Remix get off the ground, the Remix web framework. They got acquired by Shopify. And so, I went back to full-time teaching, not that I don't like Shopify, but I felt like my work was done, and I could go back to teaching. So, that's what I'm doing now, full-time teacher. WILL: Wow. Yes, I definitely have questions around that. KENT: [laughs] Okay. WILL: So many. But I want to start back...you were saying you have four kids. What are their ages? KENT: Yeah, my oldest is 11, youngest right now is 6, and then we'll have our fifth one. So, all four of the kids are pretty close in age. And then my wife and I thought we were done. And then last December, we kind of decided, you know what? I don't think we're done. I kind of think we want to do another. So, here we go. We've got a larger gap between my youngest and the next child than we have between my oldest and the youngest child. WILL: [chuckles] KENT: So, we're, like, starting a new family, or [laughs] something. WILL: Yeah [laughs]. I just want to congratulate you on your fifth child. That's amazing. KENT: Thank you. WILL: Yeah. How are you feeling about that gap? KENT: Yeah, we were pretty intentional about having our kids close together because when you do that, they have built-in friends that are always around. And as they grow older, you can do the same sorts of things with them. So, like, earlier this year, we went to Disneyland, and they all had a great time. They're all at the good age for that. And so, they actually will remember things and everything. Yeah, we were pretty certain that four is a good number for us and everything. But yeah, we just started getting this nagging feeling we wanted another one. So, like, the fact that there's a big gap was definitely not in the plan. But I know a lot of people have big gaps in their families, and it's just fine. So, we're going to be okay; just it's going to change the dynamic and change some plans for us. But we're just super excited to have this next one. WILL: I totally understand what you mean by having them close together. So, I have three little ones, and my oldest and my youngest share the same exact birthday, so they're exactly three years apart. KENT: Oh, wow. Yeah, that's actually...that's fun. My current youngest and his next oldest brother are exactly two years apart. They share the same birthday, too [laughs]. WILL: Wow. You're the first one I've heard that their kids share a birthday. KENT: Yeah, I've got a sister who shares a birthday with her son. And I think we've got a couple of birthdays that are shared, but I also have 11 brothers and sisters [laughs]. And so, I have got a big family, lots of opportunity for shared birthdays in my family. WILL: Yeah, I was actually going to ask you about that. How was it? I think you're the 11th. So, you're the youngest of 11? KENT: I'm the second youngest. So, there are 12 of us total. I'm number 11. WILL: Okay, how was that growing up with that many siblings? KENT: I loved it. Being one of the youngest I didn't really...my experience was very different from my older siblings. Where my older siblings probably ended up doing a fair bit of babysitting and helping around the house in that way, I was the one being babysat. And so, like, by the time I got to be, like, a preteen, or whatever, lots of my siblings had already moved out. I was already an uncle by the time I was six. I vaguely remember all 12 of us being together, but most of my growing up was just every other year; I'd have another sibling move out of the house, which was kind of sad. But they'd always come back and visit. And now I just have an awesome relationship with every one of my family members. And I have something, like, 55 nieces and nephews or more. Yeah, getting all of us together every couple of years for reunions is really a special experience. It's a lot of fun. WILL: Yeah. My mom, she had 12 brothers and sisters. KENT: Whoa. WILL: And I honestly miss it because we used to get together all the time. I used to live a lot closer. Most of them are in Louisiana or around that area, and now I'm in South Florida, so I don't get to see them as often. But yeah, I used to love getting together. I had so many cousins, and we got in so much trouble...and it was -- KENT: [laughs] WILL: We loved it [laughs]. KENT: Yeah, that's wonderful. I love that. WILL: Yeah. Well, I want to start here, like, how did you get your start? Because I know...I was doing some research, and I saw that, at one point, you were an AV tech. You were a computer technician. You even did maintenance. Like, what was the early start of your career like, and how did you get into web dev? KENT: I've always been very interested in computers, my interest was largely video games. So, when I was younger, I had a friend who was a computer programmer or, like, would program stuff. We had visions of...I don't know if you're familiar with RuneScape, but it's this game that he used to play, and I would play a little bit. It was just a massive online multiplayer game. And so, we had visions of building one of those and having it just running in the background, making us money, as if that's how that works [laughter]. But he tried to teach me programming, and I just could not get it at all. And so I realized at some point that playing video games all the time wasn't the most productive use of my time on computers, and if I wanted my parents to allow me to be on computers, I needed to demonstrate that I could be productive in learning, and making things, and stuff. So, I started blogging and making videos and just, like, music videos. My friend, who was the programmer, he was into anime, or anime, as people incorrectly pronounce it. And [laughs] there was this website called amv.com or .org or something. It's Anime Music Videos. And so, we would watch these music videos. And I'd say, "I want to make a music video with Naruto." And so, I would make a bunch of music videos from the Naruto videos I downloaded, and that was a lot of fun. I also ran around with a camera to do that. And then, with the blog, I wrote a blog about Google and the stuff that Google was, like, doing because I just thought it was a fascinating company. I always wanted to work at Google. In the process of, like, writing the blog, I got exposed to CSS and HTML, but I really didn't do a whole lot of programming. I also did a little bit of Google Docs. Spreadsheets had some JavaScript macros-type things that you could do. So, I did a little bit of that, but I never really got too far into programming. Then I go to college, I'm thinking, you know what? I think I want to be a video editor. I really enjoy that. And so, my brother, who at the time was working at Micron, he did quality assurance on the memory they were making. So, he would build test automation, software and hardware for testing the memory they build. And so, he recommended that I go into electrical engineering. Because what he would say is, "If you understand computers at that foundational level, you can do anything with computers." And I'd say, "Well, I like computers. And if I go into video editing, I'm going to need to understand computers, too. So yeah, sure, let's let's do that." I was also kind of interested in 3D animation and stuff like that, too. Like, I wasn't very good at it, but I was kind of interested in that, too. So, I thought, like, having a really good foundation on computers would be a good thing for me. Well, I was only at school for a semester when I took a break to go on a mission for my church [inaudible 09:42] mission. And when I got back and started getting back into things, I took a math refresher course. That was, like, a half a credit. It wasn't really a big thing, but I did terrible in it. I did so bad. And it was about that time that I realized, you know what? I've been thinking my whole life that I'm good at math. And just thinking back, I have no idea why or any justification for why I thought I was good at math because in high school, I always struggled with it. I spent so much time with it. And in fact, my senior year, I somehow ended up with a free period of nothing else to do. I don't know how this happened. But, I used that free period to go to an extra edition of my calculus class. So, I was going to twice as much calculus working, like, crazy hard and thinking that I was good at this, and I superduper was not [laughter]. And so, after getting back from my mission and taking that refresher course, I was like, you know what? Math is a really important part of engineering, and I'm not good at it at all, obviously. And so, I've got to pivot to something else. Well, before my mission, as part of the engineering major, you needed to take some programming classes. So, there was a Java programming class that I took and a computer systems class that included a lot of programming. The computer systems was very low level, so we were doing zeros and ones. And I wrote a program in zeros and ones. All that it did was it would take input from the keyboard, and then spit that back out to you as output. That was what it did. But still, you know, many lines of zeros and ones and just, like, still, I can't believe I did that [laughter]. And then we upgraded from that to Assembly, and what a godsend that was [laughs], how wonderful Assembly was after working in machine code. But then we upgraded from that to C, and that's as far as that class went. And then, yeah, my Java class, we did a bunch of stuff. And I just remember thinking or really struggling to find any practicality to what we were doing. Like, in the Java class, we were implementing the link to list data structure. And I was like, I do not care about this. This does not make any sense. Why should I care? We were doing these transistor diagrams in the computer systems class. And why do I care about that? I do not care about this at all. Like, this is not an interesting thing for me. So, I was convinced computer programming was definitely not what I wanted to do. So, when I'm switching from electrical engineering, I'm thinking, well, what do I do? And my dad convinced me to try accounting. That was his profession. He was a certified public accountant. And so, I said, "Okay, I'll try that." I liked the first class, and so I switched my major to go into the business school for accounting. I needed to take the next accounting class, and I hated that so much. It was just dull and boring. And I'm so glad that I got out of that because [laughs] I can't imagine doing anything like that. WILL: [laughs] KENT: But as part of switching over to business school, I discovered information systems. What's really cool about that is that we were doing Excel spreadsheets and building web pages. But it was all, like, with a practical application of business and, like, solving business problems. And then, I was like, oh, okay, so I can do stuff with computers in a practical setting, and that's what got me really interested. So, I switched, finally, to information systems–made it into that program. And I was still not convinced I wanted to do programming. I just wanted to work with computers. What ended up happening is the same time I got into the information systems program, I got married to my wife, and then I got this part-time job at a company called the More Good Foundation. It's a non-profit organization. And one of my jobs was to rip DVDs and upload those videos to YouTube, and then also download videos from one site and upload those to YouTube as well. And so, I was doing a lot of stuff with YouTube and video stuff. And as part of my information systems class, I was taking another Java class. At that same time, I was like, you know, what I'm doing at work is super boring. Like, can you imagine your job is to put in a [inaudible 13:45] and then click a couple of buttons? And, like, it was so boring and error-prone, too. Like, okay, now I've got to type this out and, you know, I got to make sure it's the same, try and copy-paste as much as I can. And it was not fun. And so, I thought, well, I'm pretty sure there are pieces of this that I could automate. And so, with the knowledge that I was getting in my information systems programming class, that was another Java class, I decided to write a program that automated a bunch of my stuff. And so, I asked my boss, like, "Can I automate this with writing software?" And I'm so glad that they said I could. WILL: [laughs] KENT: Because by the end of it, I had built software that allowed me to do way more than I ever could have before. I ended up uploading thousands of videos to their YouTube channels, which would have taken years to do. And they ended up actually being so happy with me. They had me present to the board of directors when they were asking for more money [laughs] and stuff. And it was really awesome. But still, I was not interested in being a programmer. Programming, to me, was just a means to an end. WILL: Oh, wow. KENT: Yeah, I guess there was just something in me that was like, I am not a programmer. So, anyway, further into the program of information systems, I interned as a business intelligence engineer over that next summer, and I ended up staying on there. And while I was supposed to be a business intelligence engineer, I did learn a lot about SQL, and star schema, and denormalized databases to optimize for read speed and everything. I learned a lot about that. But I just kept finding myself in positions where I would use my programming experience to automate things that were problematic for us in the business realm. And this was all still Java. It was there that I finally realized, you know what? I think I actually do want to be a programmer. I actually really do enjoy this. And I like that it's practical, and it makes sense for me, so… WILL: What year was that? KENT: That would have been 2012. Then I got a new job where my job was actually to be a programmer at a company called Domo, where they do business intelligence, actually. So, it got my foot in the door a little bit since I was a business intelligence engineer already. I got hired on, actually, as a QA engineer doing automated testing, but I never really got into that. And they shifted me over pretty quick into helping with the web app. And that is when I discovered JavaScript, and the whole, like, everything flooded out from there. I was like, wow, I thought I liked programming, but I had no idea how fun it could be. Because I felt like the chains had been broken. I no longer have to write Java. I can write JavaScript, and this was just so much better. WILL: [laughs] KENT: And so, yeah, I was there for a year and a half before I finally graduated. And I took a little break to work at USAA for a summer internship. And when I came back, I had another year and then converted to full-time. And so, yeah, there's my more detail than you were probably looking for, story of how I got into programming [laughs]. WILL: No, I actually love it because like I said, I've used your software, your teachings, all that. And it's amazing to hear the story of how you got there. Because I feel like a lot of times, we just see the end result, but we don't know the struggle that you went through of even trying to find your way through what your purpose was, what you're trying to do. Because, at one point, you said you were trying to do accounting, then you were trying to do something else. So, it's amazing to see, like, when it clicked for you when you got into JavaScript, so that's amazing. KENT: Yeah, it is kind of funny to think, like, some people have the story of, like, I knew I wanted to be a programmer from the very beginning, and it's just kind of funny for me to think back and, like, I was pretty certain I didn't want to be a programmer. WILL: [laughs] KENT: Like, not only did I, like, lots of people will say, "I never really thought about it, and then I saw it, and it was great." But I had thought about it. And I saw it, and I thought it was awful [laughter]. And so, yeah, I'm really glad that it worked out the way it did, though, because programming has just been a really fun thing. Like, I feel so blessed to be doing something that I actually enjoy doing. Like so many of our ancestors, they would go to work because they cared about their family and they just wanted to feed their family. I'm so grateful to them for doing that. I am so lucky that I get to go to work to take care of my family, but also, I just love doing it. WILL: Yeah, I feel the same way, so yeah, totally agree. After you found out about JavaScript, when did you figure out that you want to teach JavaScript? What was that transition like? KENT: I've been teaching for my whole life. It's ingrained in my religion. Even as a kid, you know, I'd prepare a talk, a five-minute talk, and stand up in front of 30 of my peers. And even when you're an early teenager, you get into speaking in front of the entire congregation. It took a while before I got good enough at something, enough hubris to think that people would care about what I have to say -- WILL: [laughs] KENT: Outside of my religion where, like, they're sitting there, and I've been asked to speak, and so they're going to listen to me. And so, when I started getting pretty good at programming, I decided, hey, I want to teach this stuff that I'm learning. And so, when I was still at school and working at Domo, the business intelligence company, one of our co-workers, Dave Geddes, he put together a workshop to teach AngularJS because we were migrating from Backbone to Angular. And I asked him if I could use his workshop material to teach my classmates. This was, like, soon after ng-conf, the first ng-conf, which my co-workers at Domo actually put on. So, I wasn't involved in the organization, but I was very much present when it was being organized. I attended there and developed a relationship with Firebase with the people there. I was actually...they had a developer evangelist program, which they called Torchbearers or something. And actually, that was my idea to call them Torchbearers. I think they wanted to call us torches, and I'm like, that just doesn't make sense. WILL: [laughs] KENT: I developed a relationship with them. And I asked them, "Hey, I want to teach my classmates AngularJS. Would you be interested in sponsoring some pizza and stuff?" And they said, "Yeah, we'll send you stickers, and hot sauce, and [laughs] a bunch of..." Like, they sent us, like, headphones [laughs] and stuff. So, I was like, sweet. I taught my classmates AngularJS in a workshop, brought a bunch of pizza, and it was, you know, just an extracurricular thing. And actually, the recording is still on my YouTube channel, so if you want to go look at one of my early YouTube videos. I was very into publishing video online. So, if you are diligent, you'll be able to find some of my very early [laughter] videos from my teenage years. But anyway, so, yes, I've been teaching since the very beginning. As soon as I graduated from college, I started speaking at meetups. I'd never been to a meetup before, and I just saw, oh, they want a speaker. I can talk about something. WILL: Wow. KENT: And not realizing that, like, meetups are literally always looking for speakers. This wasn't some special occasion. WILL: [laughs] KENT: And one of the meetups I spoke at was recorded and put on YouTube. And the guy who started Egghead io, John Lindquist, he is local here in Utah. And he saw that I spoke at that meetup, but he wasn't able to attend. So, he watched the recording, and he thought it was pretty good. He thought I would do a good job turning that into a video course. And that first video course paid my mortgage. WILL: Wow. KENT: And I was blown away. This thing that I had been doing just kind of for fun speaking at meetups, and I realized, oh, I can actually, like, make some legit good money out of this. From there, I just started making more courses on the side after I put the kids to bed. My wife is like, "Hey, I love you, but I want you to stay away for now because I've just been with these tiny babies all day. WILL: [laughs] KENT: And I just need some alone time." WILL: Yes. KENT: And so, I was like, okay. WILL: [laughs] KENT: I'll just go and work on some courses. And so, I spent a lot of time for the next couple of years doing course material on the side. I reached out to Frontend Masters and just told them, "Hey, I've been doing courses for Egghead." I actually met Marc Grabanski at a conference a couple of years before. And so, we established a little bit of relationship. And I just said, "Hey, I want to come and teach there." So, I taught at Frontend Masters. I started putting on my own workshops at conferences. In fact, just a few months after graduating, I got accepted to speak at a conference. And only after I was accepted did I realize it was in Sweden [laughter]. I didn't think to look where in the world this conference was. So, that was my first international trip, actually, and I ended up speaking there. I gave, actually, two talks. One of them was a three-hour talk. WILL: Whoa. KENT: Which was, yeah, that was wild. WILL: [laughs] KENT: And then, yeah, I gave a two-day workshop for them. And then, I flew straight from there to Amsterdam to give another talk and also do a live in-person podcast, which I'd been running called ngAir, an Angular podcast. It just kept on building from there until finally, I created testingjavascript.com. And that was when I realized, oh, okay, so this isn't just a thing I can use to pay my mortgage, and that's nice. This is, like, a thing I can do full-time. Because I made more with Testing JavaScript than I made from my PayPal salary. WILL: Oh wow. KENT: I was like, oh, I don't need both of these things. I would rather work half as much one full-time job; that's what I want, one full-time job and make enough to take care of my family. And I prefer teaching. So, that's when I left PayPal was when I released Testing JavaScript. WILL: Wow. So, for me, I think so many times the imposter syndrome comes up whenever I want to teach or do things at the level you're saying you're doing. Because I love teaching. I love mentoring. I remember when I came into development, it was hard. I had to find the right person to help me mentor. So now, I almost made a vow to myself that if someone wants to learn and they're willing to put in the energy, I'm going to sit down however long it takes to help them because I remember how hard it was for me whenever I was doing it. So, you said in 2014, you were only a couple years doing development. How did you overcome impostor syndrome to stand in front of people, teach, go around the world, and give talks and podcasts? Like, how did you do that portion? KENT: Part of it is a certain level of hubris like I said. Like, you just have to be willing to believe that somebody's going to care. You know, the other part of it is, it's a secret to getting really, really good at something. They sometimes will say, like, those who can't do teach. That's total baloney because it requires a lot of being able to do to get you in a position where you can teach effectively. But the process of teaching makes you better at the process of doing as well. It's how you solidify your experience as a whatever. So, if you're a cook, you're really good at that; you will get better by teaching other people how to cook. There's an element of selfishness in what I do. I just want to get really, really good at this, and so I'm going to teach people so that I can. So yeah, I think there's got to be also, like, a little bit of thick skin, too, because people are going to maybe not like what you have to share or think that you're posing or whatever. Learn how to let that slide off you a little bit. But another thing is, like, as far as that's concerned, just being really honest about what your skill set is. So, if somebody asks me a question about GraphQL, I'm going to tell them, "Well, I did use GraphQL at PayPal, but I was pretty limited. And so, I don't have a lot of experience with that," and then I'll answer their question. And so, like, communicating your limitations of knowledge effectively and being okay being judged by people because they're going to judge you. It just is the way it is. So, you just have to learn how to cope well with that. There are definitely some times where I felt like I was in over my head on some subjects or I was involved in a conversation I had no business being there. I actually felt that a lot when I was sent as PayPal's delegate to the TC39 meetings. Wow, what am I doing here? I've only been in the industry for, like, two or three years at [laughter] that point. It takes a certain level of confidence in your own abilities. But also, like, being realistic about your inexperience as well, I think, is important too. WILL: Yeah, I know that you had a lot of success, and I want to cover that next. But were there any failures when you were doing those teaching moments? KENT: Years ago, Babel was still a new thing that everybody was using to compile their JavaScript with new syntax features down to JavaScript that the browser could run. There was ES Modules that was introduced, and lots of us were doing global window object stuff. And then we moved to, like, defining your dependencies with r.js or RequireJS. And then, there was CommonJS, and Universal Module Definition, and that sort of thing. So, ECMAScript modules were very exciting. Like, people were really interested in that. And so, Babel added support to it. It would compile from the module syntax down to whatever you wanted: CommonJS or...well, I'm pretty sure it could compile to RequireJS, but I compiled it to CommonJS. And so, there was a...yeah, I would say it's a bug in Babel at that time, where it would allow you to write your ES modules in a way that was not actually spec-compliant. It was incorrect. So, I would say export default some object, and then in another module, I would say import. And then, I'd select properties off of the object that I exported, that default I exported. That was allowed by Babel, but it is superduper, not how ECMAScript modules work. Well, the problem is that I taught, like, a ton of people how to use ECMAScript modules this way. And when I realized that I was mistaken, it was just, like, a knife to the heart because I was, like, I taught so many people this wrong thing. And so, I wrote a blog post about it. I gave a big, long talk titled “More Than You Want to Know About ECMAScript Modules,” where I talk about that with many other things as well. And so, yeah, just trying to do my part to make up for the mistake that I made. So yes, I definitely have had mistakes like that. There's also, like, the aspect that technology moves at a rapid pace. And so, I have old things that I would show people how to do, which they still work just as well as they worked back then. But I wouldn't recommend doing it that way because we have better ways now. For some people, the old way to do it is the only way they can do it based on the constraints they have and the tools that they're using and stuff. And so, it's not, like, it's not valuable at all. But it is a struggle to make sure that people understand that, like, this is the way that you do it if you have to do it this way, but, like, we've got better ways. WILL: I'm glad you shared that because it helps. And I love how you say it: when I make a mistake, I own up to it and let everyone know, "Hey, I made a mistake. Let's correct it and move on." So, I really like that. KENT: Yeah, 100%. MID-ROLL AD: Are your engineers spending too much time on DevOps and maintenance issues when you need them on new features? We know maintaining your own servers can be costly and that it's easy for spending creep to sneak in when your team isn't looking. By delegating server management, maintenance, and security to thoughtbot and our network of service partners, you can get 24x7 support from our team of experts, all for less than the cost of one in-house engineer. Save time and money with our DevOps and Maintenance service. Find out more at: tbot.io/devops. WILL: I want to go back to what you were saying. When you left PayPal, you released Testing JavaScript. How did you come up with the idea to write a Testing JavaScript course? And, two, how long did it take to take off and be successful? KENT: That was a pretty special thing, honestly. In 2018, I had put together a bunch of workshops related to testing. There was this conference called Assert(js) that invited me to come, taught them. In the year prior, I went to Midwest JS and taught how to test React. I had this material about testing. I'd gotten into testing just because of open-source stuff. I didn't want to have to manually go through all my stuff again every time I wanted to check for breakages and stuff, so that got me into testing. And whatever I'm into is what I'm going to teach. So, I started teaching that testing. And then my friend, Ryan Florence, put together...he separated from Michael Jackson with React Training, and built his own thing called Workshop.me. He asked me to join up with him. And he would, like, put together these workshops for me, and I would just...my job was just to show up and teach. And so, I did that. I have a picture, actually, in this blog post, The 2010s Decade in Review, of me in front of 60 people at a two-day workshop at Trulia in San Francisco. WILL: Oh, wow. KENT: And this is where I was teaching my testing workshop. Well, what's interesting about that photo is that two weeks before that, I had gotten really frustrated with the tool that everybody uses or used at the time for testing React, and that was Enzyme. And so I was preparing this workshop or working on it. I had already delivered it a number of times, but I was working on it, improving it, as I always do [laughs] when I'm preparing. WILL: [laughs] KENT: I can never give the same workshop twice, I guess. And I was just so frustrated that Enzyme was so difficult to work with. And, like, I was going to prepare this document that said, "Here are all the things you should never do with Enzyme. Like, Enzyme encourages you to do these things; you should not do these things. And let me explain why." And I just hated that I needed a document like that. And so, I tweeted, "I'm seriously starting to think that I should make my own very small testing lib and drop Enzyme entirely. Most of Enzyme's features are not at all useful and many damaging to my test bases. I'd rather have something smaller that encourages better practices." And so, I tweeted that March 15th, 2018. I did that. I did exactly that. What I often do in my workshops is I try to build the abstraction that we're going to use so that you can use it better. So, I was, like, building Enzyme, and I realized the jump between what I had built, the little utilities that I had built as part of the workshop, from that to Enzyme was just a huge leap. And so, I thought, you know what? These utilities that I have built to teach Enzyme are actually really good. What if I just turned that into a testing utility? And that became Testing Library, which, fast forward to today, is the number one testing library for React. And it's recommended for testing React, and Vue, and Angular. The ideas that are in Testing Library got adopted by Playwright. If you're writing tests for anything in the browser, you are very likely using something that was either originally developed by me or inspired by the work that I did. And it all came from that testing workshop that I was working on. So, with that, I had not only that testing workshop; I had a number of other workshops around testing. And so I approached Joel Hooks from Egghead.io. I say, "Hey, I'm getting ready to record a bunch of Egghead courses. I've got, like, six or seven courses I want to do." And he'd seen my work before, you know, I was a very productive course creator. And he said, "Hey, how about we, you know, we've been thinking about doing this special thing. How about we make a website just dedicated to your courses?" And I said, "That sounds great." I was a little bit apprehensive because I knew that putting stuff on Egghead meant that I had, like, a built-in audience and everything that was on Egghead, so this would be really the first time of me just branching out with video material on my own. Because, otherwise, if it wasn't Egghead, it was Frontend Masters, and there was the built-in audience there. But yeah, we decided to go for it. And we released it in, I think, November. And it was that first week...which is always when you make the most is during the launch period. But that launch week, I made more than my PayPal salary for the entire year. And so, that was when I realized, oh, yeah, okay, let's go full-time on this because I don't need two PayPal salaries. I just need one. And then I can spend more time with my family and stuff. And especially as the kids are getting older, they're staying up later, and I want to hang out with them instead of with my computer at night [laughter], and so... WILL: I love how you explain that because I came in around 2018, 2019. And I remember Enzyme, and it was so confusing, so hard to work with, especially for, you know, a junior dev that's just trying to figure it out. And I remember Testing JavaScript and then using that library, and it was just so much easier to, like, grab whatever you needed to grab. Those utils made the biggest difference, and still today, they make a huge difference. So yes, I just resonate with what you're saying. That's amazing. KENT: Aw, thank you so much. WILL: Yeah. You did Testing JavaScript. And then what was your next course that you did? KENT: I quit PayPal, go full-time teaching. That first year, I actually did an update to Testing JavaScript. There were a couple of changes in Testing Library and other things that I needed to update it for. And then I started working on Epic React. So, while I was doing all this testing stuff, I was also very into React, creating a bunch of workshops around that. I was invited to speak all over the world to talk about React. And I had a couple of workshops already for React. So, I was invited to give workshops at these conferences about React. And so, I thought, you know, let's do this again, and we'll do it with React this time. The other thing was, I'd never really planned on being the testing guy. It just kind of happened, and I actually didn't really like it either. I wanted to be more broad than just testing. So, that kind of motivated me to say, hey, let's do something with React to be a little bit more broad. Yeah, so I worked on putting those workshops together and delivered them remotely. And then, yeah, COVID hit, and just really messed everything up [laughs] really bad. So, I had everything done on my end for Epic React by March of 2020, which is, like, immediately after COVID got started, in the U.S. at least. And so, yeah, then we actually didn't end up releasing Epic React until October that year, which, honestly [laughs], was a little bit frustrating for me because I was like, "Hey, guys, I have recorded all the videos and everything. Can we get this released?" But, like, that just was a really rough year for everybody. But yeah, so Egghead got the site put together. I did a bunch of interviews and stuff. And then we launched in October of 2020. That was way bigger than Testing JavaScript because Testing JavaScript was still very informed by my experience as an Egghead instructor, which, typically, the Egghead courses are, like, a video where watch me do this thing, and then you'll learn something and go apply it to your own stuff. And that's kind of what Testing JavaScript was built as. But as part of the update of Testing JavaScript in 2019, I added another workshop module called Testing Node Applications. And in that one, I decided, hey, typically, I would have a workshop version of my material and a course version. The workshop version had like instructions and exercises. And the course version was no instructions or anything. It was just, like, watch these videos. And it was just me doing the exercises. And with the update of Testing JavaScript, I added that Testing Node workshop, and I said, hey, what if we just, like, embrace the fact that these are exercises, and it's just, like, me recording the workshop? How I would deliver the workshop? And so, I tested that out, and that went really well. And so, I doubled down on that with Epic React. And I said, okay, now, this isn't just, like, watch these videos. This is a do the exercise and then watch me do the exercise. So, Epic React was not only a lot more material but the format of the material was more geared for retention and true practice and learning. And so, Epic React ended up doing much better than Testing JavaScript, and even still, is still doing a remarkable job as far as course material is concerned. And, like, so many people are getting a lot of really great knowledge from Epic React. So yeah, very gratifying to have that. WILL: Once again, I've used Epic React. It's taught me so many...stretched me. And I do like the format, so yes, I totally agree with that, yeah. The next thing, Remix, correct? KENT: Yeah. So, how I got into Remix, around the same time we finished recording Epic React videos, I was doing some other stuff kind of to keep content going and stuff while we were waiting to launch Epic React. And around that same time, my friend Ryan Florence and Michael Jackson––they were doing the React training thing. And so, we were technically competitors. Like I said, Ryan and I kind of joined forces temporarily for his Workshop Me thing, but that didn't end up working out very well. And Michael really wanted Ryan back, and so they got back together. And their React training business went way better than it had before. They were hiring people and all sorts of stuff. And then, a training business that focuses on in-person training just doesn't do very well when COVID comes around. And so, they ended up having to lay off everybody and tried to figure out, okay, now what are we going to do? Our income has gone overnight. This is a bit of a simplification. But they decided to build software and get paid for it like one does. So, they started building Remix. Ryan, actually, around that time, moved back to Utah. He and I would hang out sometimes, and he would share what he was working on with Michael. We would do, like, Zoom calls and stuff, too. I just got really excited about what they were working on. I could see the foundation was really solid, and I thought it was awesome. But I was still working on Epic React. I end up launching Epic React. He launches Remix the very next month as a developer preview thing. Yeah, it definitely...it looked a lot like current Remix in some ways but very, very different in lots of others. But I was super hooked on that. And so, I paid for the developer preview and started developing my website with it. And around the next year in August, I was getting close to finishing my website. My website is, like, pretty legit. If you haven't gone to kentcdodds.com. Yet, it is cooler than you think it is. There's a lot that goes into that website. So, I had a team help me with the product planning and getting illustrations and had somebody help me implement the designs and all that stuff. It was a pretty big project. And then, by August of 2021, Ryan and I were talking, and I said, "Hey, listen, I want to update Epic React to use Remix because I just think that is the best way to build React applications. But I have this little problem where Remix is a paid framework. That's just going to really reduce the number of people who are interested in learning what I have to teach. And on top of that, like, it just makes it difficult for people to test things out." And so, he, around that time, was like, "Hey, just hold off a little bit. We've got some announcements." And so, I think it was September when they announced that they'd raised VC money and they were going to make Remix open source. That was when Ryan said, "Hey, listen, Kent, I think that it's awesome you want to update Epic React to use Remix. But the problem is that Remix isn't even 1.0 yet. The community is super small. It needs a lot of help. If you release a course on Remix right now, then you're not going to get any attention because, like, nobody even knows what it is." So, part of me is like, yeah, that's true. But also, the other part of me is like, how do people find out what it is [laughs] unless there's, like, material about it? But he was right. And he said, "Listen, we've got a bunch of VC money. I've always wanted to work with you. How about we just hire you? And you can be a full-time teacher about Remix. But you don't have to charge anything. You just, like, make a bunch of stuff for free about Remix." I said, "That sounds great. But, you know, to make that worth my while because I'm really happy with what I'm doing with this teaching thing, like, I'm going to need a lot of Remix." And so, Michael Jackson was like, "How about we just make you a co-founder, and we give you a lot of Remix?" And I said, "Okay, let's do this." And so I jumped on board with them as a year-delayed co-founder. I guess that's pretty common. But, like, that felt kind of weird to me [laughs] to be called a co-founder. But yeah, so I joined up with them. I worked on documentation a little bit, mostly community building. I ran Remix Conf. Shopify was interested in what we were doing. And we were interested in what Shopify was doing because, at the time, they were working on Hydrogen, which was one of the early adopters of React Server Components. And, of course, everybody was interested in whether Remix was going to be adding support for server components. And Ryan put together a couple of experiments and found out that server components were nowhere near ready. And we could do better than server components could as of, you know, the time that he wrote the blog posts, like, two years ago. So, Hydrogen was working with server components. And I put us in touch with the Hydrogen team—I think it was me—to, like, talk with the Hydrogen team about, like, "Hey, how about instead of spending all this time building your own framework, you just build on top of Remix then you can, you know, make your Shopify starter projects just, like, a really thin layer on top of Remix and people will love it? And this is very important to us because we need to get users, especially really big and high profile users, so people will take us seriously." And so, we have this meeting. They fly a bunch of their people out to Salt Lake. They're asking us questions. We're asking them questions and saying, "Hey, listen, this is why server components are just not going to work out for you." Well, apparently, they didn't listen to us. It felt like they were just like, "No, we're highly invested in this. We've already sunk all this cost into this, but we're going to keep going." And they did end up shipping Hydrogen version 1 on top of server components, which I just thought was a big mistake. And it wasn't too long after that they came back and said, "Hey, we're kind of interested in having you guys join Shopify." So, right after Remix Conf, I go up into Michael's room at the hotel with Ryan. And they say, "Hey, listen, Kent, we're talking with Shopify about selling Remix and joining Shopify," and kind of bounced back and forth on whether we wanted to do it. All of us were just not sure. Because when I joined Remix, I was thinking, okay, we're going to build something, and it's going to be huge. This is going to be bigger than Vercel, like multibillion-dollar company. So, I really kind of struggled with thinking, hey, we're selling out. Like, we're just getting started here. So, Ryan and I ended up at RenderATL in Atlanta at that conference. We were both speaking there. And Ryan didn't fill out the right form. So, he actually didn't have a hotel room [laughs], and so he ended up staying in my room. I intentionally always get a double bedroom just in case somebody needs to stay with me because somebody did that for me once, and I just...it was really nice of them. So, I've always done that since. And so, I said, "Yeah, Ryan, you can stay with me." And so, we spent just a ton of time together. And this was all while we were trying to decide what to do with Shopify. And we had a lot of conversations about, like, what do we want for Remix in the future? And it was there that I realized, oh if I want to take this to, like, multi-billion dollar valuation, I've got to do things that I am not at all interested in doing. Like, you've got to build a business that is worth that much money and do business-related things. On top of all of that, to get any money out of it...because I just had a percentage of the company, not actually any money. There was no stock. So, the only way you can get money out of a situation like that is if you have a liquidation event like an IPO, which sounds, like, awful—I [laughs] would hate to go through an IP0—or you have to be bought. And if you're worth $2 billion, or 3, or whatever, who can buy you? There's almost nobody who can buy you at that valuation. Do you really want to outprice anybody that could possibly buy you? And then, on top of that, to get there, that's, like, a decade worth of your life of working really superduper hard to get to that point, and there's no guarantee. Ryan would always say a bird in the hand is worth two in the bush. He was saying Shopify is a bird in the hand, and we do not know what the future holds. And so, we were all finally convinced that, yeah, we want to sell, and so we decided, yeah, let's sell. And as the sale date grew closer, I was getting excited because I was like, oh, I can be back on the TC39 because Shopify is, like, I don't know if they're actually sending delegates to the TC39, but I'm sure that they would be interested if I ask them to, like, "Hey, let's be involved in the evolution of JavaScript." And I know they're on the Web Working Group. Like, they're on a bunch of different committees and stuff. And I just thought it'd be really cool to get involved in the web platform again. And then, on top of that, I just thought, you know what? I'll just spend all my time teaching Shopify developers how to use Remix. That sounds like a lot of fun. As things drew closer, I got more and more uneasy about that. And I thought, you know, I could probably do just as well for myself by going full-time teacher again. I've done this thing before. I just really like being a teacher and, like, having total control over everything that I do. And if I work at Shopify, they're going to tell me, "Hey, you need to, like, do this, and that, and the other." And I don't know if I want to go back to that. And so, I decided, this is awesome. Super, super good job, folks. I think I've done everything for you that you need me to do. I'm going to bail out. And so, yeah, Shopify wasn't super jazzed about that. But the deal went through anyway. And that's how I ended my time at Shopify. WILL: I love it. It's lining up perfectly because you say you left Shopify to go back doing more teaching. And then you released another course; that's Epic Web, correct? KENT: Right. That was the reason I left Shopify or I didn't join up with Shopify is because I wanted to work on Epic Web. In this 2010s blog post, one of the last things that I mention...toward the bottom, there's a section, KCD EDU, which is basically, like, I wanted to help someone go from zero to my level as an engineer in a single place where I teach just all of the things that I can teach to get somebody there. And so I wanted to call it KCD EDU, but I guess you have to be an accredited university to get that domain or something. But that was the idea. Erin Fox, back in 2020 she said, "I'm expecting you to announce your online Kent C. Dodds engineering bootcamp." And I replied, "I'm planning on doing this, no joke." So, I've been wanting to do this for a really long time. And so, leaving Remix was like, yeah, this is what I'm going to go do. I'm going to go build KCD EDU. And I was talking with Ryan at some point about, like, what I was planning on doing in the future. And something he said or something I said in that conversation made me realize, oh, shoot, I want to build Epic Web Dev. So, I've got Epic React. I don't want Epic Remix. I want people to, like, be web developers. Remix is just, like, an implementation detail. And so, I went and I was relieved to find that the domain was still available: epicweb.dev, and so I bought that. And so, I was always planning on, like, even while I was at Remix, eventually, I would leave Remix and go build Epic Web Dev. So, that's what I did. Starting in August, I decided, okay, how about this: I will build a legit real-world web application, and then I will use that to teach people how to build legit real-world web applications from start to finish. If it's included as, like, knowledge you would need to build this web app, then that's knowledge you need to be able to build a full-stack application. That was the idea. So, I started live streaming in, like, August or September, and I would live stream almost everyday development of this web app. So, people can go and watch those on my YouTube channel. I would livestream for, like, sometimes six hours at a time with breaks every 45 minutes. So, I'd just put it on a break slide, go for a quick walk, or take a drink, whatever, and then I would come back. And I would just, like, so much development and live streaming for a long time. Once I got, like, in a pretty good place with that, the app I was building was called Rocket Rental. It's like Airbnb for rocket ships. So, you could rent, like, your own rocket ship to other people to fly. So, it had to be, like, realistic enough that, like, you could relate it to whatever you were building but not realistic enough that people would actually think it was a real product [laughs]. I worked with Egghead again. They actually have a sister company now called Skill Recordings that's responsible for these types of products. And so, I was working with Skill Recordings on, like, they would get me designs. And then I would, like, work with other people to help implement some of those designs. And then, I started working on turning this stuff into workshops. And with Epic React, we have this workshop app that you run locally so that you can work in your own editor, in your own environment, and with your own editor plugins and all that stuff. I want you to practice the way that you're going to actually exercise that practice when you're done––when you're working at work. And so we have this workshop app with Epic React. Well, that was built with Create React app, very limited on what you could do. And so, I started working on a new workshop app that I just called KCD Shop, that was built with Remix. And so, now we've got a bunch of server-side stuff we can do. And this server side is running on your machine. And so, so much stuff that I can do with this thing. One of the big challenges with Epic React was that the video you watch is on epicreact.dev, but the exercises you run are on localhost. And so, you have to keep those things in sync. You'd see, okay, I'm in exercise one on the videos. Let me go find exercise one in the app and then find the file exercise one. So, you've got, like, three different things you've got to keep in sync. And so, with the workshop app for Epic Web, I said, how about we make it so that we can embed the video into the app? And so, you just have localhost running, and you see the video right above the instructions for the exercise. And so, you watch the video that kind of introduces the problem that you're going to be doing, and then you read the instructions. And then we can also make it so that we have links you can click or buttons you can click in the app that will open your editor exactly where you're supposed to go. So you don't have to keep anything in sync. You go to the app, and you watch the video. You read the instructions. You click this button. It opens your editor. And so, that's exactly what I did. And it's an amazing experience. It is phenomenal, not just for the workshop learners but for me, as a workshop developer, like, creating the workshop––it's just been phenomenal. Because, like, we also have this diff view where you can see the difference between your work in progress and the solution. So, if you get stuck, then it's very easy to see where you went wrong. It also means that we can build even very large applications as part of our workshop and our exercise where there are dozens or hundreds of files. And you don't have to worry about finding them because it'll tell you exactly which ones you need to be working in, so all sorts of really, really cool things. So, this workshop app––actually, took a lot of time and effort to build. But now that it's done, like, people are going through it now, and they're just loving it. So, I built the workshop app, I put the first workshop of Rocket Rental into this workshop app, and I delivered it. And I found out very quickly that a full application with all the bells and whistles you'd expect, like, tons of different routes and stuff, was just too much. Even with the workshop app, it was just really pretty difficult for people to gain enough context around what they were building to be effective. So, I was concerned about that. But then, around the same time, I started realizing that I had a marketing problem. And that is that with Testing JavaScript, people know that they're customers because they're like, I'm a JavaScript developer, and I know how to test––boom. I'm a Testing JavaScript customer. With Epic React, I join this company; they're using React; I need to know React, boom. I'm a customer of Epic React. But with something like Epic Web, it's just so broad that, like, yeah, I am a web developer. I just don't know if I'm a customer to Epic Web. Like, is Epic Web for only really advanced people, or is it only for really beginner people? Or is it only for people who are using this set of tools or... Like, it's just a very difficult thing to, like, identify with. And so I wanted to de-emphasize the fact that we used Remix because the fact is that you can walk away from this material and work in a Next.js app or a SvelteKit app and still use so much of the knowledge that you gained in that environment. So, I didn't want to focus on the fact that we're using any particular set of tools because the tools themselves I select them, not only because I think that they are really great tools but also because the knowledge you gain from these tools is very transferable. And I'm going to teach it in a way that's very transferable. That was the plan. But I still had this issue, like, I need people to be able to identify themselves as customers of this thing. So, what I decided to do through some, like, hints and inspiration from other people was how about I turn Rocket Rental into a much simpler app and make that a project starter? And while I was at Remix, actually, I directed the creation of this feature called Remix Stacks. It's basically the CLI allows you to create a Remix app based on a template. I said I can make a Remix Stack out of this, and I called it the Epic Stack. And so, just took all of the concepts that came from Rocket Rental; applied it to a much simpler app. It's just a note-taking app, but it has, like, all of the features that you would need to build in a typical application. So, it's got a database. It's got deployment, GitHub integration. So, you have GitHub Actions to run tests and stuff. It has the tests. It has authentication already implemented, and even two-factor auth, and third-party auth, and file upload, and, like, just tons and tons of stuff built in. And so, people can start a new project and ship that and have a lot of success, like, skip all the basic stuff. So, I presented that at Remix Conf. I wasn't working at Remix anymore, but they asked me to run Remix Conf again, so I did. And I told them, "If I'm running it this year, I'm going to select myself to speak." And I spoke and introduced the Epic Stack there. And then that was when I started to create the workshops based on the Epic Stack. And so, now it was no longer we're going to have workshops to build Rocket Rental; it was we're going to have workshops to build the Epic Stack, with the idea being that if you build the thing, you are able to use it better, like, still following the same pattern I did with Testing JavaScript where we build a framework first. Like, before you start using Jest, we're building Jest and same with Testing Library. We do the same thing with React. Before we bring in React, I teach you how to create DOM nodes yourself and render those to the page and all of that. And so, here with Epic Web, I'm going to teach you how to build the framework that you can use to build applications. So, that is what Epic Web is, it's effectively we're building the Epic Stack. In the process, you learn all about really basic things, like, how do you get styles onto the page all the way to really complex things like, how do you validate a user's email? Or how do you implement two-factor auth? Or how do you create a test database? So, you don't have to mock out the database, but you can still run your test in isolation. Around this time was when my wife and I were trying to become pregnant. And we got the news that we were expecting, and we were super excited. And so, I'm thinking, okay, I've got to ship this thing before the baby comes. Because who knows what happens after this baby comes? So, I am talking with Skill Recordings. I'm saying, "We've got to get this done by October." I think it was May. And so, I was thinking like, okay, I've probably got, like, maybe eight days worth of workshops here. And so, kind of outlined all of the workshops. Like, I know what needs to be included. I know what the end looks like because I've got the Epic Stack. The end is the Epic Stack. The beginning is, like, a brand new create Remix app creation right there. So, I know what the start and the end looks like. I kind of can figure out how much time I need to teach all of that. And I said, "Let's do eight days." And so, we got that scheduled and started selling tickets. And we sold out 30 tickets in just a couple of days, and that's what we originally planned for. I'm like, well, gosh, I can handle 80 people in a workshop. I've done that before, but that's about as far as I go. I don't really like going that much. In fact, online, especially, I only like to go up to, like, 40. But we said, "Hey, let's knock this out of the park." So, we doubled it, and we sold another 30 seats. And so, it was sold out before even the early bird sale was over. So, that was pretty encouraging. The problem was that I hadn't actually developed this material. I'd already given one workshop about testing with Rocket Rental, and I'd given one workshop about the fundamentals with Rocket Rental. But I hadn't done anything of the authentication or, the forms, or data modeling. Also, like, Epic Notes app is different from Rocket Rental. So, I got to rebuild those workshops. Like, the first workshop was going to start in, like, two weeks, maybe three weeks. And so, I'm working on these workshops. And I'm like, I've finished the first workshop, which was going to be a two-day workshop, and so I get that done. And so, that next week, I'm getting close to finished on the forms workshop, and then I start the workshops. And that was when I started to realize, oh, shoot, I am in huge trouble because I have to not only deliver two workshops a week, so that's two days a week that I'm not able to work on the workshops, really. And then also develop the material as I go, which I don't normally do this at all because I just don't like stressing myself out so much. But, like, I'd had this timeline put together, and I'm like, I need to ship this by October. For about five weeks, I worked 80 to 100 hours a week, maybe more, in a row to get those workshops created [laughs]. And I do not recommend this, and I will never do it again. I can tell you this now. I didn't tell anybody at the time because I was worried that people would think, well, geez, is that the type of product you create, like, you're just rushing through this stuff? But I can tell you this safely now because the results speak for themselves. Like, these people loved this stuff. They ate it up. It was so good. I won't do this again. It's not something that I typically do. But it worked. And, like, I put in a crazy amount of work to make this work. People loved it. And yeah, I'm really, really happy with that. The next step, though, so it was eight days' worth of workshops in four weeks. And I realized, as I almost always realize when I'm presenting workshops, that, like, oh my gosh, I have way more material than I have time for. So, by

Untyped
ESM vs. CommonJS

Untyped

Play Episode Listen Later Nov 26, 2023 31:31


في هذه الحلقة بنتكلم عن الـ Modules في الجافاسكربت الي بتسمحلنا نكتب كود ونستعمله في اكثر من مكان واكثر من مشروع. عالم الجافاسكربت بيتجه بشكل كبير الي ESM الي هي الستاندرد المتفق عليه، وبدأنا نسيب CommonJS ورانا الي كانت ومازالت عدد كبير من المكتبات بيستعملها. فأنا بقولك ايه المشاكل الي بتحصل وحتحصل بسبب الاتجاه دا والانقسام الكبير الناتج عنه وازاي نعدي الفترة دي باقل مشاكل ممكنة.

modules commonjs
programmier.bar – der Podcast für App- und Webentwicklung
News 44/23: Apple Scary Fast Event // Next.js 14 // Global Day of Coderetreat

programmier.bar – der Podcast für App- und Webentwicklung

Play Episode Listen Later Nov 1, 2023 34:24


Fabi und Jan lassen das vergangene “Scary Fast” Apple Event Revue passieren und sprechen über die Vorteile der neuen M3-Prozessor-Generation von Apple und für wen sich ein Umstieg wirklich (nicht) lohnt.Wie jeden November steht auch dieses Jahr wieder der Global Day of Coderetreat an. Jan erklärt, was ein Coderetreat ist und was die Teilnehmenden erwartet. Bei einer einfachen Implementierung von Conways Game of Life soll es explizit nicht um das nächste große Ding gehen, sondern um die eigene Entwicklung und den handwerklichen Umgang mit Code.Anschließend berichtet Fabi, was es bei Next.js 14 Neues gibt. Obwohl die API Stabilität im Vordergrund steht, gibt es mit Turbopack, Server Actions und Partial Prerendering einige spannende Neuerungen.Außerdem freut sich das programmier.bar-Team über das Feedback zur letzten News-Folge und alle verstehen jetzt den Unterschied zwischen CommonJS und ES Module in JavaScript besser – auch wenn weiterhin Unklarheit über zugrunde liegende Motivation besteht.Schreibt uns! Schickt uns eure Themenwünsche und euer Feedback: podcast@programmier.barFolgt uns! Bleibt auf dem Laufenden über zukünftige Folgen und virtuelle Meetups und beteiligt euch an Community-Diskussionen. TwitterInstagramFacebookMeetupYouTube

programmier.bar – der Podcast für App- und Webentwicklung
News 42/23: ChatGPT Voice // Visual Copilot // DockerCon // Node.js 21

programmier.bar – der Podcast für App- und Webentwicklung

Play Episode Listen Later Oct 18, 2023 40:54


Es spricht! Sebi berichtet von seinen Erfahrungen mit dem neuen Voice Feature von ChatGPT in den mobilen Apps von OpenAI. Hier kann man nicht nur mit ChatGPT sprechen, sondern mit Hilfe verschiedener Stimmen auch angesprochen werden.Einen weiteren Assistenten hat Jan mit dem Visual Copilot von Builder.io im Gepäck. Die Toolchain von Builder.io erlaubt es, dank eines Multi-Model-Ansatzes Figma-Layouts in Quelltext zu verwandeln. Weiterhin kann man beispielsweise durch Text-Prompts eigene Komponenten erstellen, anpassen und dann für verschiedenste UI-Frameworks kompilieren.Passend dazu liefert Fabi Neuigkeiten von der DockerCon. Dort hat Docker einen neuen GenAI Stack vorgestellt, der es Entwickler:innen durch Ollama, Neo4j und LangChain erlauben soll, schneller mit eigenen generativen AI-Projekten starten zu können.Darüber hinaus liefert Docker jetzt mit Docker Scout eigenes Tooling, um Schwachstellen in Containern zu finden und Möglichkeiten zur Optimierung aufzuzeigen.Sebi berichtet abschließend über den Release von Node.js 21. Wir lernen, dass diese Version kein LTS ist, weil sie ungerade ist, aber sie dennoch genügend neue Features mitbringt – unter anderem stabile Versionen von fetch und WebStreams.Und das Team ist sich einig: Es bedarf dringend einer guten Erklärung des Unterschieds von CommonJS und ECMAScript Modulen. Könnt ihr das erklären? Schreibt uns eine Mail!Schreibt uns! Schickt uns eure Themenwünsche und euer Feedback: podcast@programmier.barFolgt uns! Bleibt auf dem Laufenden über zukünftige Folgen und virtuelle Meetups und beteiligt euch an Community-Diskussionen. TwitterInstagramFacebookMeetupYouTube

Svelte Radio
Wolfensvelte 3D and the Svelte Language Server in the Browser with Jason Bradnick

Svelte Radio

Play Episode Listen Later Oct 17, 2023 40:21


We have chat with Svelte Hackathon winner Jason Bradnick (snuffy) about what it took to build his Wolfenstein clone in Svelte using only HTML, CSS and JS! No canvas used! He also talks about the work he's done on bringing the svelte language tools to SvelteLab. That means bringing the language server to the web!Recorded on September 21st.NotesSvelte Summit is happening on November 11th! Go submit a CFP! Who is Jason? GitHub Twitter / X Svelte Language Tools Websvelte-vscode-web Wolfensvelte-3DPlay in the browser Nanothreads Unpopular Opinions Brittney: node_modules

JS Party
Modernizing packages to ESM

JS Party

Play Episode Listen Later Sep 1, 2023 65:15 Transcription Available


Mark Erikson (web dev professor/historian, OSS Maintainer & engineer at Replay) joins us to talk about the shift from CommonJS to ESM. We discuss the history of module patterns in JS and the grueling effort to push the world's biggest developer ecosystem forward. Get ready to go to school kids, this one's deep!

Changelog Master Feed
Modernizing packages to ESM (JS Party #290)

Changelog Master Feed

Play Episode Listen Later Sep 1, 2023 65:15 Transcription Available


Mark Erikson (web dev professor/historian, OSS Maintainer & engineer at Replay) joins us to talk about the shift from CommonJS to ESM. We discuss the history of module patterns in JS and the grueling effort to push the world's biggest developer ecosystem forward. Get ready to go to school kids, this one's deep!

Remote Ruby
We're A JavaScript Podcast Now

Remote Ruby

Play Episode Listen Later Jul 14, 2023 50:00


Even though we're missing Andrew today, Chris and Jason keep things lively, kicking off with a fun chat about candies, and unusual dislikes. Then, they dive into the professional world where Jason shares insights from his Job Boardly project and talks about the challenges and tools he found useful, such as Imperavi's, Article. Chris and Jason have a discussion on various text editors, focusing on Basecamp's Trix, we hear the difference between Redactor X and Article, and the Revolvapp, which is Imperavi's email templates editor.  Chris and Jason go deeper into the world of JavaScript development, and they discuss their struggles with customizing elements using CSS and Tailwind.  They also share their thoughts reminding developers to view themselves as Ruby developers, recognizing the broader capabilities of Ruby beyond what Rails offers. Stay tuned for a fun episode and hit download now to hear more! [00:00:31] Chris and Jason discuss the absence of Andrew and have a conversation  about specific candies and personal preferences. [00:02:22] The conversation shifts to Jason's project, Job Boardly, where he's been actively working on giving users more control over their job board's appearance, and he shares all the secrets and talks about Imperavi, a website editor, and Article. [00:07:03] Jason acknowledges the potential pitfalls of storing HTML but praises the user experience offered by the editor, enabling users to directly see the impact of their edits. [00:07:56] Chris and Jason debate the complexity of using Trix, and comment on the lack of progress seen in public updates.[00:09:50] What's the difference between Redactor X and Article? Jason explains Redactor X is a pure WYSIWIG editor, while Article incorporates both text editing and content layout functionalities. [00:11:35] Jason talks about the Revolvapp, discussing its advantages, including having all the functionality from a single source and it's not a subscription.  [00:13:00] Chris discusses using the EL transition library for Tailwind CSS stimulus components, noting the library's simplicity but highlighting some complications when animations overlap due to quick mouse movement.[00:18:21] Chris talks about simplifying his codebase and moving away from certain older features.  He discussed his decision to discard bundle and compile using the esbuild for modern imports and CommonJS, and he mentions Adam Wathan's keynote at Tailwind Connect with Sam Selikoff showing off some amazing stuff.[00:25:55] Jason and Chris converse about their struggles with customizing the look and feel of elements using CSS and Tailwind.  They talk about the benefits and challenges of using Tailwind with Rails, particularly as it relates to component-based projects. [00:30:42] Chris discusses the implementation of getters and setters in a single method. He points out that if additional functionality such as sidecar or JavaScript isn't necessary, and a lot can be accomplished using pure Ruby. [00:36:04] Chris and Jason discuss the possibility of using pure forms or creating custom tools instead of relying solely on Rails provided tools.  [00:40:05] They remind developers to view themselves as more than just Rails developers, highlighting the importance of understanding and utilizing the broader capabilities of Ruby beyond just what Rails offers. [00:41:05] Jason brings up his experience with earlier versions of Laravel that had a form builder which later got phased out. He praises Laravel's way of handling inline errors. Chris expresses his views about the tendency of developers to over-engineer forms. [00:44:54] Chris adds his thoughts on “conceptual compression,” discussing he balance between abstracting processes and maintaining the ability to drop a lower level when needed.[00:46:23] They discuss theirs experience and observations from using Adam's browser tools and watching his keynote, and they mention how the early days of Tailwind were challenging due to configuration issues. Panelists:Jason CharnesChris OliverSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterImperaviArticle Imperavi Article & Redactor XRevolvappTrixTailwind Connect 2023-Keynote (YouTube)Ruby Radar TwitterRuby for All Podcast

The Changelog
Streak redemption, vectors are the new JSON, CommonJS is hurting JavaScript & the rise of the AI Engineer

The Changelog

Play Episode Listen Later Jul 3, 2023 6:20 Transcription Available


Lukas Mathis writes about streak redemption, Jonathan Katz thinks vectors are the new JSON, Andy Jiang says CommonJS is hurting JavaScript & Swyx on the rise of the AI Engineer.

Changelog News
Streak redemption, vectors are the new JSON, CommonJS is hurting JavaScript & the rise of the AI Engineer

Changelog News

Play Episode Listen Later Jul 3, 2023 6:20 Transcription Available


Lukas Mathis writes about streak redemption, Jonathan Katz thinks vectors are the new JSON, Andy Jiang says CommonJS is hurting JavaScript & Swyx on the rise of the AI Engineer.

Changelog Master Feed
Streak redemption, vectors are the new JSON, CommonJS is hurting JavaScript & the rise of the AI Engineer (Changelog News #51)

Changelog Master Feed

Play Episode Listen Later Jul 3, 2023 6:20 Transcription Available


Lukas Mathis writes about streak redemption, Jonathan Katz thinks vectors are the new JSON, Andy Jiang says CommonJS is hurting JavaScript & Swyx on the rise of the AI Engineer.

Syntax - Tasty Web Development Treats
Potluck × JS Modules × HTML Tags × Recession × Budgeting

Syntax - Tasty Web Development Treats

Play Episode Listen Later Jan 18, 2023 64:58


In this potluck episode of Syntax, Wes and Scott answer your questions about HTML tags, budgeting, recession proofing your business, software dev vs software engineer, taking payments, and more. Show Notes 00:11:11 Welcome 01:29:11 When should you use article and section in HTML? 08:03:08 Does your business suffer from the economic recession? 15:47:18 How do you manage your money or budget? PlainTextAccounting YNAB Copilot 20:51:11 What should I consider using? There's a lot of options. CommonJS, AMD, UMD, es modules? 26:30:09 What's the difference between a software developer and software engineer? 30:36:11 How do you handle payment for your course platforms? Braintree Gumroad Paddle Stripe 38:33:23 Why is this false? “I'm a string” instanceof String 40:38:22 Do you all use Mac spaces for organizing windows? Arc 45:55:21 Do you have any tips that would help my front end team avoid rendering a DOM with invalid element nesting? 48:48:14 Would you do an episode commenting on the CSS Nesting survey released this week? Help Choose CSS Nesting Syntax 53:57:01 How do you guys go about prioritizing your work? Height.app Things 58:50:19 SIIIIICK ××× PIIIICKS ××× ××× SIIIIICK ××× PIIIICKS ××× Scott: Bundle of Eucalyptus Wes: Recycling bin brackets Shameless Plugs Scott: LevelUp Tutorials Wes: Wes Bos Tutorials Tweet us your tasty treats Scott's Instagram LevelUpTutorials Instagram Wes' Instagram Wes' Twitter Wes' Facebook Scott's Twitter Make sure to include @SyntaxFM in your tweets

Enjoy the Vue
Episode 92: (Un)breaking JavaScript with Yulia Startsev

Enjoy the Vue

Play Episode Listen Later May 30, 2022 68:40


Support us on Kofi! (https://ko-fi.com/C0C86NYJW) Have you ever wondered if it's worth breaking the internet? No? Well, today's guest has! Tune in as we chat with Yulia Startsev, a software engineer for Mozilla, and a compiler for JavaScript. We dive into the conversation with who uses semi-colons (and when and why), followed by an anecdote from Yulia about Smoosh and the potential to break the internet. Yulia talks us through the considerations when naming a new JavaScript function, and the promising changes around immutability. We also learn how to remember the difference between the splice and slice functions, and why pattern matching is such an exciting prospect. We hear about the four stages of deciding to change JavaScript, why most programming languages are written in English, and why certain popular functions like caller and colleague were deprecated. We wrap up the episode with a summary of what the array by group function does, who funds the updates to JavaScript, and what Yulia's fantasy changes to the web would be! So, for all this and so much more, tune in today. Key Points From This Episode: Welcome to today's guest, Yulia Startsev, an engineer at Mozilla and compiler for JavaScript.  A discussion around semicolons and who's pro and who's against (and who's neither!). Why it's important not to break the internet: a funny anecdote about SmooshGate.  The considerations to take into account when naming a function.  What's coming to JavaScript: Immutability.  Why Tuples are such an exciting prospect and their role in wrap-around vs incomplete infinite grids.  How the team understands the difference between splicing and slicing.  How Yulia and the JavaScript team come up with new names.  The idea behind pattern matching, and how it will reduce the cognitive load on developers.  The four stages of deciding to accept a change to JavaScript.  Why most programming languages are written in English.  Why the caller and colleague functions were deprecated.  Array by group: what it is, why it's interesting, and the readability issues it is facing.  Things the team would love to add to or change in JavaScript.  When Yulia is willing to break the web.  Who funds the updates and changes to JavaScript.  Yulia's fantasy changes to JavaScript, and why these are far in the future.  Where you can find out more about Yulia! Today's picks: from board games to body pillows to YouTube essayists.  Tweetables: “Pattern matching is a proposal I am quite excited about, switch in case statements are very interesting in JavaScript. By interesting, I mean, broken.” — @codehag (https://twitter.com/codehag?ref_src=twsrc%255Egoogle%257Ctwcamp%255Eserp%257Ctwgr%255Eauthor) [0:27:23] “[Pattern matching is] very exciting. It's very, very powerful, which makes it a little scary because using an overpowered tool for something that doesn't need that level of power can lead you to making mistakes that you wouldn't make with a less powerful tool.” — @codehag (https://twitter.com/codehag?ref_src=twsrc%255Egoogle%257Ctwcamp%255Eserp%257Ctwgr%255Eauthor) [0:33:19] “It's significantly more difficult to remove something than it is to add something.” — @codehag (https://twitter.com/codehag?ref_src=twsrc%255Egoogle%257Ctwcamp%255Eserp%257Ctwgr%255Eauthor) [0:52:10] Links Mentioned in Today's Episode: tc39: How We Work (https://github.com/tc39/how-we-work) (GitHub) SmooshGate: The ongoing struggle between progress and stability in JavaScript (https://medium.com/@jacobdfriedmann/smooshgate-the-ongoing-struggle-between-progress-and-stability-in-javascript-2a971c1162dd), Jacob Friedmann SmooshMonkey (https://bugzilla.mozilla.org/show_bug.cgi?id=smooshmonkey) Reduce/Reduce Conflict (https://www.gnu.org/software/bison/manual/html_node/Reduce_002fReduce.html#:~:text=A%20reduce%2Freduce%20conflict%20occurs,zero%20or%20more%20word%20groupings.), gnu.org JavaScript Records & Tuples Proposal (https://github.com/tc39/proposal-record-tuple), tc39 (GitHub)  Record & Tuple Tutorial (https://tc39.es/proposal-record-tuple/tutorial/#:~:text=What%20is%20Record%20%26%20Tuple%20%3F,a%20deeply%20immutable%20primitive%20value.), tc39 Kolates? (non-English programming language conference) Function.caller (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller) (deprecated), MDN Why was arguments.callee removed from ES5 strict mode? (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee#why_was_arguments.callee_removed_from_es5_strict_mode), MDN Temporal Proposal (https://github.com/tc39/proposal-temporal), tc39 Symbol.species (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species) (please don't use), MDN Companies scramble to defend against newly discovered 'Log4j' digital flaw (https://www.npr.org/2021/12/14/1064123144/companies-scramble-to-defend-against-newly-discovered-log4j-digital-flaw), Jenna McLaughlin (NPR) CommonJS (https://en.wikipedia.org/wiki/CommonJS#:~:text=CommonJS%20is%20a%20project%20with,outside%20of%20the%20web%20browser.&text=programming%20with%20Node.-,js.,browsers%20don't%20support%20CommonJS.), Wikipedia Run to completion scheduling (https://en.wikipedia.org/wiki/Run_to_completion_scheduling), Wikipedia English Linguistic Imperialism in Programming (https://www.pagerduty.com/eng/english-linguistic-imperialism-programming), Hannah Chung (PagerDuty) Coding Is for Everyone—as Long as You Speak English (https://www.wired.com/story/coding-is-for-everyoneas-long-as-you-speak-english), Gretchen McCullough (WIRED) How to find Yulia on the internet: Twitter: @codehag (http://twitter.com/codehag) Github: codehag (https://github.com/codehag) Twitch.tv: codehag (https://twitch.tv/codehag) Compiler Compiler (https://www.youtube.com/watch?v=gPcHBzWXq1E&list=PLo3w8EB99pqJVPhmYbYdInBvAGarDavh-&index=1), Yulia Startsev (YouTube) Mozilla Hacks: Yulia Startsev (https://hacks.mozilla.org/author/ystartsevmozilla-com) This week's picks: Yulia Startsev Sophie from Mars (https://www.youtube.com/channel/UCJmlCcnfMlyPA2oSbb072QA), YouTube The Ballad of Himbo Geralt: A look at Netflix' The Witcher | Witchermania (https://www.youtube.com/watch?v=yO9ZGr84Xg4), Sophie from Mars Lang Jam (https://github.com/langjam/langjam), JT (GitHub) Advent of Code 2021 in APL #1! (https://www.youtube.com/watch?v=DNYxfoCEVEM), code_report (YouTube) Functional vs Array Programming (https://www.youtube.com/watch?v=UogkQ67d0nY), code_report (YouTube) Alex Santa Monica (https://www.alderac.com/santa-monica/), Board Game Ari Golden Girls (https://www.hulu.com/series/the-golden-girls-a6e5db1c-ab70-451d-8b8c-2fba9ea29248), ABC (on Hulu) Tessa Body pillow Teacup (https://whitethorngames.com/teacup), Smarto Club (Xbox Series X and Series S, PlayStation 4, Microsoft Windows, Nintendo Switch, Xbox One, PlayStation 5) Hellbound (https://www.netflix.com/title/81256675), Netflix Jorts (https://twitter.com/AITA_online/status/1470862918908624908) Jorts update (https://twitter.com/Rainbowmazin/status/1470871686996283394)

Chats with Kent C. Dodds
Titus Wormer Chats About ECMAScript Modules

Chats with Kent C. Dodds

Play Episode Listen Later Oct 4, 2021 33:04


It's time to embrace ESM (ECMAScript Module). NodeJS is providing support for ESM out of the box. With ESM modules coming out of the experimental stage we're going to see a lot of packages begin to embrace it. ESM provides superior organization of your code by allowing you to more easily create smaller, reusable chunks of code. ESM gives you a "module scope" where not only are functions and variables available to each other in the same module but also allows you to explicitly make them available to other modules. There is also the Loader API that is currently in its experimental stages.In this episode, you'll also learn about more differences between ESM and CommonJS, and some of the challenges and potential problems of using native ESM today. HomeworkFollow along with one of the following blog posts:Super Simple Start to ESModules in Node.jsSuper Simple Start to ESModules in the BrowserResourcesMisunderstanding ES6 Modules, Upgrading Babel, Tears, and a SolutionGet Ready For ESMGuest: Titus WormerTwitter: @wooormGitHub: @wooormWebsite: wooorm.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev

Double Slash
Vite.., un bundler !

Double Slash

Play Episode Listen Later Apr 19, 2021 46:39


Les bundlers (générateur de bundle), on les utilise au quotidien. Ils sont indispensables dans les outils des développeurs front et ils ont beaucoup évolué. Nous passons en revue les principaux bundlers les plus utilisés et surtout nous parlons des nouvelles générations de bundler. Pourquoi on utilise des bundlers : Limiter les requêtes, minifier et éviter de polluer le scope global (window). Avoir un code plus propre découpé en module. Et une réutilisation du code. Avant les bundlers: Immediately Invoked Function Expression (IIFE). (function foo() { return bar; })(); Plugin jQuery qui s'appelait à travers jQuery (function ( $ ) { $.fn.greenify = function() { this.css( "color", "green" ); return this; }; }( jQuery )); Les principaux types de modules : CommonJS: require('..'); module.exports = ...; - AMD (Asynchronous Module Definition): ```js define(['dep1', 'dep2'], function (dep1, dep2) { //Define the module value by returning a value. return function () {}; }); UMD (Universal Module Definition): (function (root, factory) { if (typeof define === "function" && define.amd) { define(["jquery", "underscore"], factory); } else if (typeof exports === "object") { module.exports = factory(require("jquery"), require("underscore")); } else { root.Requester = factory(root.$, root._); } }(this, function ($, _) { // this is where I defined my module implementation var Requester = { // ... }; return Requester; })); ESM (EcmaScript Modules): compatibilité 92% https://caniuse.com/es6-module import toto from ...; export default ...; Browserify (js + plugin pour autre fichier) première release en 2011. Uniquement JS. Permettait de créer des modules avec require/module.exports: http://browserify.org/ Brunch (js, css, etc..) simple, peu de config, skeleton: https://brunch.io/ Webpack (js, css, ...): https://webpack.js.org/ Rollup: Top pour faire des packages. Capable de compiler en differents types (CommonJs, AMD, IIFE) https://rollupjs.org/guide/en/ Nouvelle génération de bundler Snowpack: En mode dev, pas de bundle. Recharge uniquement le fichier modifié. En production, par défaut, il fait une optimisation optionnelle, mais on est toujours sur du ESM. On peut ajouter des plugins (webpack, Rollup) pour faire un seul fichier. https://www.snowpack.dev/ Rome: https://github.com/rome/tools Vite: Fais beaucoup de choses "out of the box”. Le mode dev est en ESM. Divise en 2 modules: le code source de l'app et les dépendances. Il prébundle les dépendances, car elles changent peu lors du dev. Le code source est en ESM. Fais un bundle (sans ESBuild mais avec Rollup) pour la production pour le moment. https://vitejs.dev/ ESBuild (Go) vraiment jeune pas encore prêt pour la production. Par contre extrêmement rapide et très prometteur. https://esbuild.github.io/ WMR: https://github.com/preactjs/wmr Podcast présenté par : Alexandre Duval @xlanex6 Patrick Faramaz @PatrickFaramaz

3 Minutes with Kent
Getting a Native ESM module imported into a CommonJS module

3 Minutes with Kent

Play Episode Listen Later Mar 13, 2021 2:59


Hey friends So today. I just want to mention something that I've been working on for the last couple days. So if you didn't know node version 10 is the last version of node that so does not support native ECMAScript modules without a flag. So you can use ECMAScript modules with node version 10, but you need to pass it a flag version 12 and above I'll do not require a flag they just support a native ESM out of the box. And what's exciting about this is it means that package authors can start using native ES module.'s and and we can consume them as native modules and we don't have to compile down or compile away those ES modules. This is a good thing but it also comes with a fair number of complications. For one thing we're not there are interesting semantics with the way that ESM works native ESM. For example, you cannot use require for a native ES module. So, you can't just require a library or another module that you've written. You.Have to use an import statement. Now, you're probably working in if you're working in a node application, you're probably working in one that is not using native ESM if you if you are using native that's awesome good for you, but most of us probably aren't. So we're either compiling our import statements to require or we're requiring writing require ourselves. And so if you want to start using packages that are built with native ESM, then you're going to need to do things a little bit differently. So you.Can't use an import statement in a common JS module. So a non-ESM module. And so the only way to get a ESM module into your common JS module is by using a dynamic import statement, which looks like a function when you call import. It's an asynchronous operation, so you need to use asynchle weight. Luckily for us node version, or yeah recently at some point. I think version 14, we know have support for root or or module async await. Unfortunately,That only works in native ESM modules So if you want to use a if you're writing a common JS module and you want to import a ESM module the only way to do it is to use a dynamic import and you have to it's asynch weight and so or or promise I guess. And so, you have to write an async function to be able to import anything from ESM. There's I'm going to need to like write a blog post about this and stuff because there are a couple of interesting things here. It's going to be a little bit painful, but I think in the end we're all going to be much. Better off just going full native ESM. I hope that's interesting. Bye.

BartJS Podcast
ESM i Node, React 17 og Mozilla – TDZ#14

BartJS Podcast

Play Episode Listen Later Aug 21, 2020 58:26


Ferie og fødselspermisjon er over og vi er tilbake med en Temporal Dead Zone. Denne gangen snakker vi om interoperabilitet mellom CommonJS og EcmaScript Modules i Node 14, forberedende major releases ala React 17 og fremtiden til Mozilla og MDN. Shownotes:

React Podcast
96: Pete Hunt on Seven Years of Reconsidering Best Practices

React Podcast

Play Episode Listen Later May 28, 2020 58:15


To celebrate 7 years of React, we have a very special guest: Pete Hunt. He’s the one who asked us to give React just 5 minutes, to reconsider our established frontend practices, and see if separation of technologies was serving us as well as we thought. Pete tells us about the early days of React — it’s rocky community reception, Facebook’s struggle to create meaningful open source, and betting big on CommonJS and a little-known bundler named Webpack. Featuring Pete Hunt — Twitter, GitHub chantastic — Twitter, GitHub Links Tom Occhino and Jordan Walke: JS Apps at Facebook — React.js announcement at JSConf 2013 Vjeux Tom Occhino Jordan Walke Angular emberjs SproutCore Pete Hunt: React: Rethinking best practices — Pete’s landmark talk at JSConf EU 2013 Facebook Open Source James Pearce Paul O`Shannessy webpack Backbone.js page.js TypeScript Closure Compiler TypeScript Compiler API ts-morph webassembly Twitter acquires anti-abuse technology provider Smyte Sponsor Build a beautiful functional React or React Native app with Infinite Red. Get two tickets to the 2021 Chain React conference when you start or refer a new project. Visit reactpodcast.infinite.red for details.

RWpod - подкаст про мир Ruby и Web технологии
44 выпуск 07 сезона. Firefox 70, React.js Concurrent Mode, HTTPX, Deimos, Madge, Web-extension-starter и прочее

RWpod - подкаст про мир Ruby и Web технологии

Play Episode Listen Later Nov 4, 2019 47:21


Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby Rails 6 adds after_save_commit, Rails 6 adds ActiveStorage::Blob#open и Using bind parameters in Active Record for SQL security and performance Improving Performance with Flame Graphs, HTTPX: A Ruby HTTP library for tomorrow… and beyond!, Managing PostgreSQL partitioned tables with Ruby и Introducing Deimos: Using Kafka as the Data Backbone for your Architecture Web Firefox 70 — a bountiful release for all, React.js - Introducing Concurrent Mode и Modern JavaScript features you may have missed Madge - create graphs from your CommonJS, AMD or ES6 module dependencies, Web-extension-starter - Web Extension starter to build “Write Once Run on Any Browser” extension и Tetris in the URL

Devchat.tv Master Feed
JSJ 398: Node 12 with Paige Niedringhaus

Devchat.tv Master Feed

Play Episode Listen Later Oct 8, 2019 64:45


Guest Paige Niedringhaus has been a developer full time for 3 years, and today she is here to talk about Node 12. One of the things she is most excited about is the ES6 support that is now available, so things that used to require React, Angular, or Vue can now be done in Node. The require function will not have to be used in Node 12. AJ is worried about some of these changes and expresses his concerns. Paige assures him that in the beginning you won’t have to switch things to imports. You may have to change file extensions/types so Node can pick up what it’s supposed to be using. They are also trying to make it compatible with CommonJS. Node 12 also boasts an improved startup time. The panel discusses what specifically this means. They talk about the code cache and how Node caches the built in libraries that it comes prepackaged with. The V8 engine is also getting many performance enhancements.  Paige talks about the shift from promises to async. In Node 12, async functions will actually be faster than promises. They discuss some of the difficulties they’ve had in the past with Async08, and especially callbacks.  Another feature of Node 12 is better security. The transcripted security layer (TLS), which is how Node handles encrypted strains of communication, is upgrading to 1.3. The protocol is simpler to implement, quicker to negotiate sessions between the applications, provides increased end user privacy, and reduces request time. Overall, this means less latency for everybody. 1.3 also gets rid of the edge cases that caused TLS to be way far slower than it needed to be.  The conversation turns to properly configuring default heap limits to prevent an ‘out of memory’ error. Configuring heap limits is something necessary when constructing an incredibly large object or array of objects. Node 12 also offers formatted diagnostic summaries, which can include information on total memory, used memory, memory limits, and environment lags. It can report on uncaught exceptions and fatal errors. Overall, Node 12 is trying to help with the debugging process. They talk about the different parsers available and how issues with key pairing in Node have been solved.  Paige talks about using worker threads in Node 12. Worker threads are really beneficial for CPU intensive JavaScript operations. Worker threads are there for those things that eat up all of your memory, they can alleviate the load and keep your program running efficiently while doing their own operations on the sideline, and returning to the main thread once they’ve finished their job. None of the panelists have really used worker threads, so they discuss why that is and how they might use Worker Threads in Node 12.  In addition, Node 12 is making Native module creation and support easier, as well as all the different binaries a node developer would want to support. Paige makes it a point to mention the new compiler and minimum platform standards. They are as follows: GCC minimum 6 GLIVC minimum 2.17 on platforms other than Mac and Windows (Linux) Mac users need at least 8 and Mac OS 10.10 If you’ve been running node 11 builds in Windows, you’re up to speed Linux binaries supported are Enterprise Linux 7, Debian 8, and Ubuntu 14.04 If you have different requirements, go to the Node website Panelists J.C. Hyatt Steve Edwards AJ O’Neal With special guest: Paige Niedringhaus Sponsors Tidelift Sentry use the code “devchat” for 2 months free on Sentry’s small plan Sustain Our Software Links Async CommonJS njs Promise Node Event Stream llhttp llparse LLVM Papa Parse Json.stringify  Json.parse Optimizing Web Performance TLS 1.3 Overlocking SSL Generate Keypair Follow DevChatTV on Facebook and Twitter Picks J.C. Hyatt: AWS Amplify framework 12 Rules for Life: An Antidote to Chaos by Jordan Petersen React and Gatsby workshops Steve Edwards: The Farside comic coming back? AJ O’Neal: Field of Hopes and Strings Link’s Awakening Dune Paige Niedringhaus: DeLonghi Magnifica XS Automatic Espresso Machine, Cappuccino Maker CONNECT.TECH Conference Follow Paige on Twitter, Medium, and Github

JavaScript Jabber
JSJ 398: Node 12 with Paige Niedringhaus

JavaScript Jabber

Play Episode Listen Later Oct 8, 2019 64:45


Guest Paige Niedringhaus has been a developer full time for 3 years, and today she is here to talk about Node 12. One of the things she is most excited about is the ES6 support that is now available, so things that used to require React, Angular, or Vue can now be done in Node. The require function will not have to be used in Node 12. AJ is worried about some of these changes and expresses his concerns. Paige assures him that in the beginning you won’t have to switch things to imports. You may have to change file extensions/types so Node can pick up what it’s supposed to be using. They are also trying to make it compatible with CommonJS. Node 12 also boasts an improved startup time. The panel discusses what specifically this means. They talk about the code cache and how Node caches the built in libraries that it comes prepackaged with. The V8 engine is also getting many performance enhancements.  Paige talks about the shift from promises to async. In Node 12, async functions will actually be faster than promises. They discuss some of the difficulties they’ve had in the past with Async08, and especially callbacks.  Another feature of Node 12 is better security. The transcripted security layer (TLS), which is how Node handles encrypted strains of communication, is upgrading to 1.3. The protocol is simpler to implement, quicker to negotiate sessions between the applications, provides increased end user privacy, and reduces request time. Overall, this means less latency for everybody. 1.3 also gets rid of the edge cases that caused TLS to be way far slower than it needed to be.  The conversation turns to properly configuring default heap limits to prevent an ‘out of memory’ error. Configuring heap limits is something necessary when constructing an incredibly large object or array of objects. Node 12 also offers formatted diagnostic summaries, which can include information on total memory, used memory, memory limits, and environment lags. It can report on uncaught exceptions and fatal errors. Overall, Node 12 is trying to help with the debugging process. They talk about the different parsers available and how issues with key pairing in Node have been solved.  Paige talks about using worker threads in Node 12. Worker threads are really beneficial for CPU intensive JavaScript operations. Worker threads are there for those things that eat up all of your memory, they can alleviate the load and keep your program running efficiently while doing their own operations on the sideline, and returning to the main thread once they’ve finished their job. None of the panelists have really used worker threads, so they discuss why that is and how they might use Worker Threads in Node 12.  In addition, Node 12 is making Native module creation and support easier, as well as all the different binaries a node developer would want to support. Paige makes it a point to mention the new compiler and minimum platform standards. They are as follows: GCC minimum 6 GLIVC minimum 2.17 on platforms other than Mac and Windows (Linux) Mac users need at least 8 and Mac OS 10.10 If you’ve been running node 11 builds in Windows, you’re up to speed Linux binaries supported are Enterprise Linux 7, Debian 8, and Ubuntu 14.04 If you have different requirements, go to the Node website Panelists J.C. Hyatt Steve Edwards AJ O’Neal With special guest: Paige Niedringhaus Sponsors Tidelift Sentry use the code “devchat” for 2 months free on Sentry’s small plan Sustain Our Software Links Async CommonJS njs Promise Node Event Stream llhttp llparse LLVM Papa Parse Json.stringify  Json.parse Optimizing Web Performance TLS 1.3 Overlocking SSL Generate Keypair Follow DevChatTV on Facebook and Twitter Picks J.C. Hyatt: AWS Amplify framework 12 Rules for Life: An Antidote to Chaos by Jordan Petersen React and Gatsby workshops Steve Edwards: The Farside comic coming back? AJ O’Neal: Field of Hopes and Strings Link’s Awakening Dune Paige Niedringhaus: DeLonghi Magnifica XS Automatic Espresso Machine, Cappuccino Maker CONNECT.TECH Conference Follow Paige on Twitter, Medium, and Github

All JavaScript Podcasts by Devchat.tv
JSJ 398: Node 12 with Paige Niedringhaus

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Oct 8, 2019 64:45


Guest Paige Niedringhaus has been a developer full time for 3 years, and today she is here to talk about Node 12. One of the things she is most excited about is the ES6 support that is now available, so things that used to require React, Angular, or Vue can now be done in Node. The require function will not have to be used in Node 12. AJ is worried about some of these changes and expresses his concerns. Paige assures him that in the beginning you won’t have to switch things to imports. You may have to change file extensions/types so Node can pick up what it’s supposed to be using. They are also trying to make it compatible with CommonJS. Node 12 also boasts an improved startup time. The panel discusses what specifically this means. They talk about the code cache and how Node caches the built in libraries that it comes prepackaged with. The V8 engine is also getting many performance enhancements.  Paige talks about the shift from promises to async. In Node 12, async functions will actually be faster than promises. They discuss some of the difficulties they’ve had in the past with Async08, and especially callbacks.  Another feature of Node 12 is better security. The transcripted security layer (TLS), which is how Node handles encrypted strains of communication, is upgrading to 1.3. The protocol is simpler to implement, quicker to negotiate sessions between the applications, provides increased end user privacy, and reduces request time. Overall, this means less latency for everybody. 1.3 also gets rid of the edge cases that caused TLS to be way far slower than it needed to be.  The conversation turns to properly configuring default heap limits to prevent an ‘out of memory’ error. Configuring heap limits is something necessary when constructing an incredibly large object or array of objects. Node 12 also offers formatted diagnostic summaries, which can include information on total memory, used memory, memory limits, and environment lags. It can report on uncaught exceptions and fatal errors. Overall, Node 12 is trying to help with the debugging process. They talk about the different parsers available and how issues with key pairing in Node have been solved.  Paige talks about using worker threads in Node 12. Worker threads are really beneficial for CPU intensive JavaScript operations. Worker threads are there for those things that eat up all of your memory, they can alleviate the load and keep your program running efficiently while doing their own operations on the sideline, and returning to the main thread once they’ve finished their job. None of the panelists have really used worker threads, so they discuss why that is and how they might use Worker Threads in Node 12.  In addition, Node 12 is making Native module creation and support easier, as well as all the different binaries a node developer would want to support. Paige makes it a point to mention the new compiler and minimum platform standards. They are as follows: GCC minimum 6 GLIVC minimum 2.17 on platforms other than Mac and Windows (Linux) Mac users need at least 8 and Mac OS 10.10 If you’ve been running node 11 builds in Windows, you’re up to speed Linux binaries supported are Enterprise Linux 7, Debian 8, and Ubuntu 14.04 If you have different requirements, go to the Node website Panelists J.C. Hyatt Steve Edwards AJ O’Neal With special guest: Paige Niedringhaus Sponsors Tidelift Sentry use the code “devchat” for 2 months free on Sentry’s small plan Sustain Our Software Links Async CommonJS njs Promise Node Event Stream llhttp llparse LLVM Papa Parse Json.stringify  Json.parse Optimizing Web Performance TLS 1.3 Overlocking SSL Generate Keypair Follow DevChatTV on Facebook and Twitter Picks J.C. Hyatt: AWS Amplify framework 12 Rules for Life: An Antidote to Chaos by Jordan Petersen React and Gatsby workshops Steve Edwards: The Farside comic coming back? AJ O’Neal: Field of Hopes and Strings Link’s Awakening Dune Paige Niedringhaus: DeLonghi Magnifica XS Automatic Espresso Machine, Cappuccino Maker CONNECT.TECH Conference Follow Paige on Twitter, Medium, and Github

Frontend First
Lenient libraries, strict applications

Frontend First

Play Episode Listen Later Feb 6, 2019 62:08


Topics include: 04:01: Welcome to Node Dependency Hell. 14:00: How should the way we declare dependencies change if an addon is an implementation detail of another addon? 21:45: Can Ember CLI address these problems a layer above Yarn/npm? 23:25: Is JavaScript's fractured module ecosystem (CommonJS in node vs. ES6 modules in the frontend) contributing to the problem? 26:21: Someone's app broke when they installed their dependencies due to a Mirage dependency changing. How can we reliably solve this for users? 35:05: Even if the tooling were better, there's a cultural problem where JS library authors don't consider the dependencies they bring in. 39:04: Lessons learned: apps should specify strict dependencies, libraries (including addons) should specify lenient dependencies apps should use lockfiles ember-dependency-lint & yarn resolutions are a good top-level escape hatch addons should use the dependencies key & ember-auto-import for most of their dependencies 41:12: Ember Auto Import attempts some deduplication of dependencies. If you're writing an addon that has a dependency the host app cares a lot about, you can use addPackagesToProject to put the burden on host app. 48:33: Would you build Ember CLI Tailwind the same if you were building it from scratch today? 54:55: Call for input. What are any best practices that we've missed? What did we get wrong? 59:20: Mirage blog using GitHub issues teaser Links: Ember Auto Import Discourse topic on conflicting dependencies Dependency Lint Ember CLI Addon Docs Ember CLI Tailwind

All JavaScript Podcasts by Devchat.tv
JSJ 279: ES Modules in Node Today! with John-David Dalton

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Sep 19, 2017 56:54


Tweet this Episode John-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 work The Node.js and NPM package delivery ecosystem Module loaders in Node.js Babel (and other compilers) versus ES Module Loader and much, much more... Links: Lodash ES Module Loader for Node Node CommonJS Babel TypeScript FlowType Microsoft ESM Blog Post Meteor Reify ESM Spec PhantomJS zlib module in Node AWS Lambda NPM Webpack Rollup John-David Dalton on Twitter Picks: Cory: Trending Developer Skills The Devops Handbook Aimee: Nodevember ES Modules in Node Today (blog post) Dating is Dead Aaron: Ready Player One trailer breakdown Jim Jefferies  Show I Can't Make This Up by Kevin Hart Work with Aaron at SaltStack Chuck: Angular Dev Summit ZohoCRM Working on Cars - Therapeutic working with your hands doing physical work John: TC39 Proposal for Optional Chaining ToyBox 3D Printer

JavaScript Jabber
JSJ 279: ES Modules in Node Today! with John-David Dalton

JavaScript Jabber

Play Episode Listen Later Sep 19, 2017 56:54


Tweet this Episode John-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 work The Node.js and NPM package delivery ecosystem Module loaders in Node.js Babel (and other compilers) versus ES Module Loader and much, much more... Links: Lodash ES Module Loader for Node Node CommonJS Babel TypeScript FlowType Microsoft ESM Blog Post Meteor Reify ESM Spec PhantomJS zlib module in Node AWS Lambda NPM Webpack Rollup John-David Dalton on Twitter Picks: Cory: Trending Developer Skills The Devops Handbook Aimee: Nodevember ES Modules in Node Today (blog post) Dating is Dead Aaron: Ready Player One trailer breakdown Jim Jefferies  Show I Can't Make This Up by Kevin Hart Work with Aaron at SaltStack Chuck: Angular Dev Summit ZohoCRM Working on Cars - Therapeutic working with your hands doing physical work John: TC39 Proposal for Optional Chaining ToyBox 3D Printer

Devchat.tv Master Feed
JSJ 279: ES Modules in Node Today! with John-David Dalton

Devchat.tv Master Feed

Play Episode Listen Later Sep 19, 2017 56:54


Tweet this Episode John-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 work The Node.js and NPM package delivery ecosystem Module loaders in Node.js Babel (and other compilers) versus ES Module Loader and much, much more... Links: Lodash ES Module Loader for Node Node CommonJS Babel TypeScript FlowType Microsoft ESM Blog Post Meteor Reify ESM Spec PhantomJS zlib module in Node AWS Lambda NPM Webpack Rollup John-David Dalton on Twitter Picks: Cory: Trending Developer Skills The Devops Handbook Aimee: Nodevember ES Modules in Node Today (blog post) Dating is Dead Aaron: Ready Player One trailer breakdown Jim Jefferies  Show I Can't Make This Up by Kevin Hart Work with Aaron at SaltStack Chuck: Angular Dev Summit ZohoCRM Working on Cars - Therapeutic working with your hands doing physical work John: TC39 Proposal for Optional Chaining ToyBox 3D Printer

Front End Happy Hour
Episode 034 - npm install beer --save-in-mouth

Front End Happy Hour

Play Episode Listen Later May 22, 2017 53:26


In this episode, we are joined by Laurie Voss, the COO and former CTO at npm. Npm, also known as Node Package Manager has been an important tool in the JavaScript community and has helped engineers share their code. In today’s episode, we’ll be discussing how we leverage npm and find out what we can expect from npm 5. Laurie also teaches us some cool tricks that exist in the npm cli. Items mentioned in the episode: Node, npm, Ruby, Python, Java, Back End Happy Hour, CommonJS, CocoaPods, Stack Overflow, Github, Babel, Webpack, Closure Compiler, Rollup, Browserify, Yarn, npm Enterprise, Left-pad, Express, Google, Monster Cable, Gold Apple Watch, I am rich, Semver.org Guests: Laurie Voss - @seldo Panelists: Ryan Burgess - @burgessdryan Augustus Yuan - @augburto Jem Young - @JemYoung Derrick Showers - @derrickshowers Mars Jullian - @marsjosephine Picks: Laurie Voss - npm 5 Laurie Voss - Slides.com Laurie Voss - Next.js Ryan Burgess - Moment Lens Ryan Burgess - Lin Clark - A Cartoon into Fiber - React Conf 2017 Ryan Burgess - The Founder Augustus Yuan - Deco IDE Augustus Yuan - Mocktails Mixer by Deeplocal Jem Young - Aviation Jem Young - Music to Draw To: Satellite Derrick Showers - How I built this podcast Derrick Showers - Containers podcast Derrick Showers - Jackbox TV Mars Jullian - Spotify Mood playlists Mars Jullian - SkyGuru

Devchat.tv Master Feed
095 AiA Building NG2 Libraries with Olivier Combe

Devchat.tv Master Feed

Play Episode Listen Later Jun 2, 2016 51:07


Check out Newbie Remote Conf!   02:17 - Olivier Combe Twitter GitHub Holimetrix 03:21 - Why People Want Libraries in Angular 2 04:13 - Types of Libraries People Might Write 05:21 - ng2-translate 08:02 - TypeScript Problems vs Package Manager Problems 10:22 - Collaboration 13:17 - Advice For Writing Libraries ng-conf-library 19:47 - Design Considerations 25:09 - ng2-translate (Cont’d) 27:53 - Advice for People Doing Public vs Public Libraries 28:45 - Simplicity 30:11 - ng-conf 32:13 - Working with Systems (i.e. webpack) CommonJS Systemjs 36:53 - Upkeep   Picks Khan Academy (Jules) Redbreast Irish Whiskey (Ward) Ghost (John) CloudFlare (John) Concept 2 PM5 (Performance Monitor 5) (Lukas) ng-conf (Lukas) Trello (Chuck) Gravity Forms (Chuck) Zapier (Chuck) angular2-library-seed (Olivier)

Adventures in Angular
095 AiA Building NG2 Libraries with Olivier Combe

Adventures in Angular

Play Episode Listen Later Jun 2, 2016 51:07


Check out Newbie Remote Conf!   02:17 - Olivier Combe Twitter GitHub Holimetrix 03:21 - Why People Want Libraries in Angular 2 04:13 - Types of Libraries People Might Write 05:21 - ng2-translate 08:02 - TypeScript Problems vs Package Manager Problems 10:22 - Collaboration 13:17 - Advice For Writing Libraries ng-conf-library 19:47 - Design Considerations 25:09 - ng2-translate (Cont’d) 27:53 - Advice for People Doing Public vs Public Libraries 28:45 - Simplicity 30:11 - ng-conf 32:13 - Working with Systems (i.e. webpack) CommonJS Systemjs 36:53 - Upkeep   Picks Khan Academy (Jules) Redbreast Irish Whiskey (Ward) Ghost (John) CloudFlare (John) Concept 2 PM5 (Performance Monitor 5) (Lukas) ng-conf (Lukas) Trello (Chuck) Gravity Forms (Chuck) Zapier (Chuck) angular2-library-seed (Olivier)

All Angular Podcasts by Devchat.tv
095 AiA Building NG2 Libraries with Olivier Combe

All Angular Podcasts by Devchat.tv

Play Episode Listen Later Jun 2, 2016 51:07


Check out Newbie Remote Conf!   02:17 - Olivier Combe Twitter GitHub Holimetrix 03:21 - Why People Want Libraries in Angular 2 04:13 - Types of Libraries People Might Write 05:21 - ng2-translate 08:02 - TypeScript Problems vs Package Manager Problems 10:22 - Collaboration 13:17 - Advice For Writing Libraries ng-conf-library 19:47 - Design Considerations 25:09 - ng2-translate (Cont’d) 27:53 - Advice for People Doing Public vs Public Libraries 28:45 - Simplicity 30:11 - ng-conf 32:13 - Working with Systems (i.e. webpack) CommonJS Systemjs 36:53 - Upkeep   Picks Khan Academy (Jules) Redbreast Irish Whiskey (Ward) Ghost (John) CloudFlare (John) Concept 2 PM5 (Performance Monitor 5) (Lukas) ng-conf (Lukas) Trello (Chuck) Gravity Forms (Chuck) Zapier (Chuck) angular2-library-seed (Olivier)

Devchat.tv Master Feed
195 JSJ Rollup.js with Rich Harris and Oskar Segersvärd

Devchat.tv Master Feed

Play Episode Listen Later Jan 20, 2016 64:56


02:17 - Rich Harris Introduction Twitter GitHub Blog The Guardian 02:34 - Oskar Segersvärd Introduction Twitter GitHub Widespace 02:50 - rollup.js rollup - npm 04:47 - Caveats and Fundamental Differences Between CommonJS and AMD Modules and ES6 Modules lodash Static Analysis 11:26 - Where rollup.js Fits in the Ecosystem Bundler vs Loader systemjs jspm webpack 17:40 - Input Modules 18:35 - Why Focus on Bundling Tools vs HTTP/2 20:13 - Tree-shaking versus dead code elimination 25:53 - ES6/ES2016 Support 27:36 - Other Important Optimizations 32:11 - Small modules: it’s not quite that simple three.js 41:54 - jsnext:main – should we use it, and what for? Picks Better Off Ted (Joe) Elementary (Joe) Ruby Rogues Episode #137: Book Club - Functional Programming for the Object-Oriented Programmer with Brian Marick (Aimee) Ruby Rogues Episode #115: Functional and Object Oriented Programming with Jessica Kerr (Aimee) Ruby Rogues Episode #65: Functional vs Object Oriented Programming with Michael Feathers (Aimee) Operation Code (Aimee) Google Define Function (Dave) Scott Hanselman: Dark Matter Developers: The Unseen 99% (Dave) MyFitnessPal (Chuck) Nike+ Running (Chuck) Couch to 10k (Chuck) Aftershokz Bluez 2 Headphones (Chuck) Pebble Time Steel (Chuck) Climbing (Rich) The Codeless Code (Rich) Star Wars (Rich) The Website Obesity Crisis (Oskar)

All JavaScript Podcasts by Devchat.tv
195 JSJ Rollup.js with Rich Harris and Oskar Segersvärd

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Jan 20, 2016 64:56


02:17 - Rich Harris Introduction Twitter GitHub Blog The Guardian 02:34 - Oskar Segersvärd Introduction Twitter GitHub Widespace 02:50 - rollup.js rollup - npm 04:47 - Caveats and Fundamental Differences Between CommonJS and AMD Modules and ES6 Modules lodash Static Analysis 11:26 - Where rollup.js Fits in the Ecosystem Bundler vs Loader systemjs jspm webpack 17:40 - Input Modules 18:35 - Why Focus on Bundling Tools vs HTTP/2 20:13 - Tree-shaking versus dead code elimination 25:53 - ES6/ES2016 Support 27:36 - Other Important Optimizations 32:11 - Small modules: it’s not quite that simple three.js 41:54 - jsnext:main – should we use it, and what for? Picks Better Off Ted (Joe) Elementary (Joe) Ruby Rogues Episode #137: Book Club - Functional Programming for the Object-Oriented Programmer with Brian Marick (Aimee) Ruby Rogues Episode #115: Functional and Object Oriented Programming with Jessica Kerr (Aimee) Ruby Rogues Episode #65: Functional vs Object Oriented Programming with Michael Feathers (Aimee) Operation Code (Aimee) Google Define Function (Dave) Scott Hanselman: Dark Matter Developers: The Unseen 99% (Dave) MyFitnessPal (Chuck) Nike+ Running (Chuck) Couch to 10k (Chuck) Aftershokz Bluez 2 Headphones (Chuck) Pebble Time Steel (Chuck) Climbing (Rich) The Codeless Code (Rich) Star Wars (Rich) The Website Obesity Crisis (Oskar)

JavaScript Jabber
195 JSJ Rollup.js with Rich Harris and Oskar Segersvärd

JavaScript Jabber

Play Episode Listen Later Jan 20, 2016 64:56


02:17 - Rich Harris Introduction Twitter GitHub Blog The Guardian 02:34 - Oskar Segersvärd Introduction Twitter GitHub Widespace 02:50 - rollup.js rollup - npm 04:47 - Caveats and Fundamental Differences Between CommonJS and AMD Modules and ES6 Modules lodash Static Analysis 11:26 - Where rollup.js Fits in the Ecosystem Bundler vs Loader systemjs jspm webpack 17:40 - Input Modules 18:35 - Why Focus on Bundling Tools vs HTTP/2 20:13 - Tree-shaking versus dead code elimination 25:53 - ES6/ES2016 Support 27:36 - Other Important Optimizations 32:11 - Small modules: it’s not quite that simple three.js 41:54 - jsnext:main – should we use it, and what for? Picks Better Off Ted (Joe) Elementary (Joe) Ruby Rogues Episode #137: Book Club - Functional Programming for the Object-Oriented Programmer with Brian Marick (Aimee) Ruby Rogues Episode #115: Functional and Object Oriented Programming with Jessica Kerr (Aimee) Ruby Rogues Episode #65: Functional vs Object Oriented Programming with Michael Feathers (Aimee) Operation Code (Aimee) Google Define Function (Dave) Scott Hanselman: Dark Matter Developers: The Unseen 99% (Dave) MyFitnessPal (Chuck) Nike+ Running (Chuck) Couch to 10k (Chuck) Aftershokz Bluez 2 Headphones (Chuck) Pebble Time Steel (Chuck) Climbing (Rich) The Codeless Code (Rich) Star Wars (Rich) The Website Obesity Crisis (Oskar)

Teahour
#78 - 和 Vue.js 框架的作者聊聊前端框架开发背后的故事

Teahour

Play Episode Listen Later Aug 16, 2015 116:56


本期由 Terry 和 袁滚滚 一起主持, 邀请到了 Vue.js 的作者 尤小右, 聊聊前端框架开发背后的故事。 这一期我们将聊到非常多前端框架和技术,大家也可以听到小右同学对各种前端框架和技术的点评,如果你正愁如何选择你的前端工具栈, 我相信这一期将会对你有非常大的帮助。(涉及到的技术包含 Knockout, BackboneJS, Spine, Marionette, AngularJS, Ember, Ractive.js, React, Flux, webpack, Karma, Jasmine 等等等等) Meteor Parsons School of Design Clojure Colgate University ActionScript Zachary Lieberman openframeworks three.js Google Creative Lab Google Data Arts Team Aaron Koblin Chrome Experiments Dependency injection Object.defineProperty() Knockout Backbone.js Spine AngularJS Marionette MVVM Glimmer Ractive React React Virtual DOM shouldComponentUpdate (React) Flux Immutable JS CommonJS substack Browserify webpack Babel CoffeeScript TypeScript Jasmine Mocha Karma Selenium CasperJS PhantomJS Nightwatch.js Sauce Labs BrowserStack DailyJS Laravel Laracasts Processing TasteJS Avalon 尤小右 知乎 Relay Ember FastBoot react-server-example 功夫熊 硬派健身 硬派健身 - 知乎专栏 Python China 青城 Theme BTW: 录制中途,突然楼上开始敲东西,虽然后期做了一些处理, 但是可能还是略有影响,但并无大碍,希望大家多多饱含. 小右口误更正: 小右到达美国的时间是 05 年 Typescript 是有类型推导的 Special Guests: 尤小右 and 袁滚滚.

CodeWinds - Leading edge web developer news and training | javascript / React.js / Node.js / HTML5 / web development - Jeff B
008 Guy Bedford - jspm & SystemJS - Unity and simplicity in loading CommonJS, AMD, and ES6 JS packages

CodeWinds - Leading edge web developer news and training | javascript / React.js / Node.js / HTML5 / web development - Jeff B

Play Episode Listen Later Jul 2, 2014 22:12


Guy Bedford explains jspm and SystemJS which he created to simplify JS loading and package management. Load CommonJS, AMD, and ES6 modules in a simple and unified manner based on the ES6 Module Loader polyfill.

Accidental Tech Podcast
67: Tim Said, Man

Accidental Tech Podcast

Play Episode Listen Later May 28, 2014 129:39


We'll be guests on the WWDC live episode of The Talk Show: Tuesday, June 3, 6–9 PM. Get tickets here ASAP! John will be taking a plane... for you. Follow-up: Which is faster: installing Showbot or reimplementing it? Casey's open-source Node version PHP isn't faster than Javascript, voiding Marco's accidental argument in the last episode. Node.js uses CommonJS, not AMD. ECMAScript also adds formal module support, which es6-module-transpiler lets you use today. To the great surprise of nobody except John, iPhones come with earbuds, and those earbuds come with clickers. To the great surprise of nobody, including John, the Bluetooth-pairing interface in a car was terrible, and both Marco and Casey missed an obscure reference. iOS games that support physical game controllers must also work without them. If the "iPhone 6" comes in two sizes, which do you buy? Possibility of resolution scaling modes. Would the cameras be different? (Marco on The Talk Show, starting around 01:26:00). WWDC product-announcement predictions: New MacBook Airs or a 12" Retina MacBook Air? (Intel's Broadwell delay) Macworld's slow SSD speeds in the new Airs may just be from different SSD manufacturers. New Apple TV hardware or software? The Apple TV 3's CPU was originally a dual-core A5 with one die disabled, but not anymore. The iPod Touch still has an A5 LOL. There may not be any new hardware announced at WWDC, just like previous WWDCs in 2007, 2008, 2010, and 2011. New sensors to be taken advantage of, like Pedometer++ did with the M7 last year. Craig Hockenberry on Apple wearables Wearables, sensors, and watches in fashion and reality. Bringing the new Mac Pro's dark-glossy-aluminum finish to more Pro hardware? Retina Thunderbolt Display? The Magic Mouse. Yes, we really talked about this. Drawing conclusions from the "To Be Announced" sessions in the WWDC schedule. WWDC predictions for Mac OS X 10.10: Just a visual refresh, or notable improvements to the core OS as well? Apple shuffling engineers around to work on the new hotness while neglecting its established platforms and applications. Modernization or replacement of AppKit, possibly by bringing the relevant parts of UIKit to Mac? Is there any hope for a new filesystem, possibly by evolving Core Storage? WWDC predictions for iOS 8: Better inter-app communication: A system like Contracts or Intents? Involving remote view controllers? Side-by-side iPad multitasking? Springboard enhancements? Please kill Newsstand. Please. Just make them normal app icons. Could Remote View Controllers and Background Refresh be used for widgets, live tiles, or dynamic icons? Customizable default browser, mail app, etc.? WWDC predictions for new or improved web services: Sponsored by: lynda.com: Learn at your own pace from expert-taught video tutorials. Free 7-day trial. NatureBox: Discover and enjoy delicious snacks, conveniently delivered to your home or office. Dash: Create a free, real-time dashboard for your website, your business, or your life. (Check out the ones they made for us.)

All JavaScript Podcasts by Devchat.tv
064 JSJ Ember Tools with Ryan Florence

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Jun 21, 2013 49:56


Panel Ryan Florence (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:28 - Ryan Florence Introduction Instructure Canvas Network 03:04 - Ember 101 05:03 - Ember.js Workflow 047 JSJ Specialized vs Monolithic with James Halliday and Tom Dale ember-tools 07:14 - CommonJS vs RequireJS r.js browser-build 09:58 - prego 11:39 - Generators 14:45 - Testing 16:15 - Yeoman Yeoman generators 20:49 - Scaffolding Handlebars.js 21:33 - Ember blessing ember-tools Ember.js - Making Ember.js Easier 24:19 - Using ember-tools in Rails Creating Browser Apps as Part of Express of Rails (etc.) 25:27 - Scaffolding (cont’d) 26:53 - Adapting an existing project to ember-tools 29:59 - Dbmon 30:59 - Canvas Edu Apps (learning apps built on LTI™) 32:44 - node.js 34:24 - Modules 38:59 - Contributing to ember-tools 41:46 - State Picks vim-clutch (Merrick) Star Wars: Heir to the Empire by Timothy Zahn (Joe) America’s Got Talent (Joe) Man of Steel (Joe) The Internship (Joe) Help Save Podcasting! | Electronic Frontier Foundation (Chuck) Stuff You Should Know (Chuck) Fringe (Chuck) Capgras Syndrome: You Are Not Who You Think You Are (The Stuff You Should Know Podcast) (Ryan) MIDI.js (Ryan) JS Bin (Ryan) Lifetime Products Swing Sets (Ryan) Uncooked Flour Tortillas (Ryan) Next Week JavaScript Jabber: Javascript Application Build Tools with Adam Hawkins Transcript MERRICK:  What’s up gentlemen? JOE:  Like I said, just making toot lips. JAMISON:  Isn’t toot lip like a flower of some kind? The JavaScript flower? JOE:  Doesn’t smell like a flower. CHUCK:  [Laughter] [Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.]  [This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]  [This podcast is sponsored by JetBrains, makers of WebStorm. Whether you’re working with Node.js or building the front end of your web application, WebStorm is the tool for you. It has great code quality and code exploration tools and works with HTML5, Node, TypeScript, CoffeeScript, Harmony, LESS, Sass, Jade, JSLint, JSHint, and the Google closure compiler. Check it out at JetBrains.com/WebStorm.] CHUCK:  Hey everybody, and welcome to Episode 64 of the JavaScript Jabber Show. This week on our panel, we have Jamison Dance. JAMISON:  Hello friends. CHUCK:  Joe Eames. JOE:  Hey there. CHUCK:  Merrick Christensen. MERRICK:  What’s up? CHUCK:  I’m Charles Max Wood from DevChat.TV. And this week, we have a special guest, Ryan Florence. RYAN:  Hey, how’s it going? CHUCK:  So, you haven’t been on the show before. Do you want to introduce yourself? RYAN:  Sure. Ryan Florence. I’m from Utah like a lot of you guys. I’ve been writing JavaScript for five years now or something like that. I just picked it up. I was sick of the engineers at my company telling me that things were impossible. So, I started to show them that it was possible and then ended up getting paid more money. CHUCK:  Is that at Instructure or is that somewhere else? RYAN:  No, that was at a company actually in Idaho. CHUCK:  Ah, I see. RYAN:  So now, I work at Instructure. We build a learning management system for schools and universities. We also have Canvas.net, which is open courses for anyone to take. There are some pretty interesting ones on there like gender and comic books, things like that. It’s a fun place to work, fun product to work on. CHUCK:  Yeah, you inherited a lot of my old coworkers. I used to work for Mozy. RYAN:  Yeah, half our engineering team used to be Mozy. But I think we have offset them at this point.

Devchat.tv Master Feed
064 JSJ Ember Tools with Ryan Florence

Devchat.tv Master Feed

Play Episode Listen Later Jun 21, 2013 49:56


Panel Ryan Florence (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:28 - Ryan Florence Introduction Instructure Canvas Network 03:04 - Ember 101 05:03 - Ember.js Workflow 047 JSJ Specialized vs Monolithic with James Halliday and Tom Dale ember-tools 07:14 - CommonJS vs RequireJS r.js browser-build 09:58 - prego 11:39 - Generators 14:45 - Testing 16:15 - Yeoman Yeoman generators 20:49 - Scaffolding Handlebars.js 21:33 - Ember blessing ember-tools Ember.js - Making Ember.js Easier 24:19 - Using ember-tools in Rails Creating Browser Apps as Part of Express of Rails (etc.) 25:27 - Scaffolding (cont’d) 26:53 - Adapting an existing project to ember-tools 29:59 - Dbmon 30:59 - Canvas Edu Apps (learning apps built on LTI™) 32:44 - node.js 34:24 - Modules 38:59 - Contributing to ember-tools 41:46 - State Picks vim-clutch (Merrick) Star Wars: Heir to the Empire by Timothy Zahn (Joe) America’s Got Talent (Joe) Man of Steel (Joe) The Internship (Joe) Help Save Podcasting! | Electronic Frontier Foundation (Chuck) Stuff You Should Know (Chuck) Fringe (Chuck) Capgras Syndrome: You Are Not Who You Think You Are (The Stuff You Should Know Podcast) (Ryan) MIDI.js (Ryan) JS Bin (Ryan) Lifetime Products Swing Sets (Ryan) Uncooked Flour Tortillas (Ryan) Next Week JavaScript Jabber: Javascript Application Build Tools with Adam Hawkins Transcript MERRICK:  What’s up gentlemen? JOE:  Like I said, just making toot lips. JAMISON:  Isn’t toot lip like a flower of some kind? The JavaScript flower? JOE:  Doesn’t smell like a flower. CHUCK:  [Laughter] [Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.]  [This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]  [This podcast is sponsored by JetBrains, makers of WebStorm. Whether you’re working with Node.js or building the front end of your web application, WebStorm is the tool for you. It has great code quality and code exploration tools and works with HTML5, Node, TypeScript, CoffeeScript, Harmony, LESS, Sass, Jade, JSLint, JSHint, and the Google closure compiler. Check it out at JetBrains.com/WebStorm.] CHUCK:  Hey everybody, and welcome to Episode 64 of the JavaScript Jabber Show. This week on our panel, we have Jamison Dance. JAMISON:  Hello friends. CHUCK:  Joe Eames. JOE:  Hey there. CHUCK:  Merrick Christensen. MERRICK:  What’s up? CHUCK:  I’m Charles Max Wood from DevChat.TV. And this week, we have a special guest, Ryan Florence. RYAN:  Hey, how’s it going? CHUCK:  So, you haven’t been on the show before. Do you want to introduce yourself? RYAN:  Sure. Ryan Florence. I’m from Utah like a lot of you guys. I’ve been writing JavaScript for five years now or something like that. I just picked it up. I was sick of the engineers at my company telling me that things were impossible. So, I started to show them that it was possible and then ended up getting paid more money. CHUCK:  Is that at Instructure or is that somewhere else? RYAN:  No, that was at a company actually in Idaho. CHUCK:  Ah, I see. RYAN:  So now, I work at Instructure. We build a learning management system for schools and universities. We also have Canvas.net, which is open courses for anyone to take. There are some pretty interesting ones on there like gender and comic books, things like that. It’s a fun place to work, fun product to work on. CHUCK:  Yeah, you inherited a lot of my old coworkers. I used to work for Mozy. RYAN:  Yeah, half our engineering team used to be Mozy. But I think we have offset them at this point.

JavaScript Jabber
064 JSJ Ember Tools with Ryan Florence

JavaScript Jabber

Play Episode Listen Later Jun 21, 2013 49:56


Panel Ryan Florence (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:28 - Ryan Florence Introduction Instructure Canvas Network 03:04 - Ember 101 05:03 - Ember.js Workflow 047 JSJ Specialized vs Monolithic with James Halliday and Tom Dale ember-tools 07:14 - CommonJS vs RequireJS r.js browser-build 09:58 - prego 11:39 - Generators 14:45 - Testing 16:15 - Yeoman Yeoman generators 20:49 - Scaffolding Handlebars.js 21:33 - Ember blessing ember-tools Ember.js - Making Ember.js Easier 24:19 - Using ember-tools in Rails Creating Browser Apps as Part of Express of Rails (etc.) 25:27 - Scaffolding (cont’d) 26:53 - Adapting an existing project to ember-tools 29:59 - Dbmon 30:59 - Canvas Edu Apps (learning apps built on LTI™) 32:44 - node.js 34:24 - Modules 38:59 - Contributing to ember-tools 41:46 - State Picks vim-clutch (Merrick) Star Wars: Heir to the Empire by Timothy Zahn (Joe) America’s Got Talent (Joe) Man of Steel (Joe) The Internship (Joe) Help Save Podcasting! | Electronic Frontier Foundation (Chuck) Stuff You Should Know (Chuck) Fringe (Chuck) Capgras Syndrome: You Are Not Who You Think You Are (The Stuff You Should Know Podcast) (Ryan) MIDI.js (Ryan) JS Bin (Ryan) Lifetime Products Swing Sets (Ryan) Uncooked Flour Tortillas (Ryan) Next Week JavaScript Jabber: Javascript Application Build Tools with Adam Hawkins Transcript MERRICK:  What’s up gentlemen? JOE:  Like I said, just making toot lips. JAMISON:  Isn’t toot lip like a flower of some kind? The JavaScript flower? JOE:  Doesn’t smell like a flower. CHUCK:  [Laughter] [Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.]  [This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]  [This podcast is sponsored by JetBrains, makers of WebStorm. Whether you’re working with Node.js or building the front end of your web application, WebStorm is the tool for you. It has great code quality and code exploration tools and works with HTML5, Node, TypeScript, CoffeeScript, Harmony, LESS, Sass, Jade, JSLint, JSHint, and the Google closure compiler. Check it out at JetBrains.com/WebStorm.] CHUCK:  Hey everybody, and welcome to Episode 64 of the JavaScript Jabber Show. This week on our panel, we have Jamison Dance. JAMISON:  Hello friends. CHUCK:  Joe Eames. JOE:  Hey there. CHUCK:  Merrick Christensen. MERRICK:  What’s up? CHUCK:  I’m Charles Max Wood from DevChat.TV. And this week, we have a special guest, Ryan Florence. RYAN:  Hey, how’s it going? CHUCK:  So, you haven’t been on the show before. Do you want to introduce yourself? RYAN:  Sure. Ryan Florence. I’m from Utah like a lot of you guys. I’ve been writing JavaScript for five years now or something like that. I just picked it up. I was sick of the engineers at my company telling me that things were impossible. So, I started to show them that it was possible and then ended up getting paid more money. CHUCK:  Is that at Instructure or is that somewhere else? RYAN:  No, that was at a company actually in Idaho. CHUCK:  Ah, I see. RYAN:  So now, I work at Instructure. We build a learning management system for schools and universities. We also have Canvas.net, which is open courses for anyone to take. There are some pretty interesting ones on there like gender and comic books, things like that. It’s a fun place to work, fun product to work on. CHUCK:  Yeah, you inherited a lot of my old coworkers. I used to work for Mozy. RYAN:  Yeah, half our engineering team used to be Mozy. But I think we have offset them at this point.

Fronteers Videos
Philipp Naderer | Concurrent Server-side JS on the JVM [Fronteers 2012 Jam Session]

Fronteers Videos

Play Episode Listen Later Oct 3, 2012 10:03


10 minutes about RingoJS, a Node.js-like CommonJS environment, which supports threaded JavaScript on the server (aka "Workers"). More info at: https://fronteers.nl/congres/2012/jam-session/concurrent-server-side-js-on-the-jvm-philipp-naderer

Fronteers Videos
Philipp Naderer | Concurrent Server-side JS on the JVM [Fronteers 2012 Jam Session]

Fronteers Videos

Play Episode Listen Later Oct 3, 2012 10:03


10 minutes about RingoJS, a Node.js-like CommonJS environment, which supports threaded JavaScript on the server (aka "Workers"). More info at: https://fronteers.nl/congres/2012/jam-session/concurrent-server-side-js-on-the-jvm-philipp-naderer