it JSJ 291: Serverless For JavaScript with Gareth McCumskey By devchat.tv Published On :: Tue, 12 Dec 2017 06:00:00 -0500 Panel: Charles Max Wood Aimee Knight AJ O’Neal Joe Eames Special Guests: Gareth McCumskey In this episode, JavaScript Jabber speaks with Gareth McCumskey about Serverless For JavaScript. Gareth leads the dev team at Expat Explore in Cape Town, South Africa. Gareth and this team specialize in exploring the Serverless realm in JavaScript. The JavaScript Jabbers panel and Gareth discuss the many different types of serverless systems, and when to implement them, how serverless system work, and when to go in the direction of using Serverless. In particular, we dive pretty deep on: What does it mean to be Serverless? Since platform as a service. Microservice on Docker Firebase “no backend” Backend systems Cloud functions and failure in systems How do you start to think about a serverless system? How do decide what to do? AWS Lambda Working in a different vendor Node 4 Programming JS to deploy Using libraries for NPM How is works with AWS Lambda Where is the database? More point of failure? Calls to Slack? Authentication Micro Services Elastic Bean Stalk Static Assets, S3, Managing Testing the services Integration testing And much more! Links: @garethmcc @expatexplore gareth.mccumskey.com https://github.com/garethmcc serverless.com Picks: Aimee Serverless Architectures NG-BE Conference AJ Documentary on Enron Hard Thing about Hard Things Charles Serverless Framework The Storm Light Achieves Avengers: Infinity War Gareth Building MicroServices Skeptics Guide To The Universe Podcast Expate Explore Joe Wonder - Movie Gloom In Space - Board Game Full Article
it JSJ 292: CosmosDB with Kirill Gavrylyuk By devchat.tv Published On :: Tue, 19 Dec 2017 18:30:00 -0500 Panel: Charles Max Wood Special Guests: Kirill Gavrylyuk In this episode, JavaScript Jabber speaks with Kirill Gavrylyuk. Kirill is a dev manager at Cosmos DB, and works professionally with Azure CosmosDB. Kirill is on JavaScript Jabber to talk about what CosmosDB is in the world of development technology. Chuck and Kirill discuss the nuances of this database technology, how it is implemented, and how to manage and migrate data, among other great features. In particular, we dive pretty deep on: What is Cosmos DB? Bring your data anywhere your users are It is a website Multimodel database Works with Mongodb Cassandra Started as database DB Throughput Key data pairs Switching from MongoDB to Azure How do you decide what goes into this? It looks like an everything database. Migration path Uses cases, problems solved Supporting APIs Does it only exist in the Cloud? An emulator is available. Subscription info. And much more! Links: @kirillg-msft https://www.linkedin.com/in/kirillgavrylyuk Picks: Kirill Shared Debugging with VS Code - Keynote Charles USB Powered Monitor on Amazon Full Article
it MJS 040: Kitson Kelly By devchat.tv Published On :: Thu, 21 Dec 2017 20:02:00 -0500 Panel: Charles Max Wood Guest: Kitson Kelly This week on My JavaScript Story, Charles speaks with Kitson Kelly. Kitson is a return guest, previously on JavaScript Jabber 277. Kitson is the CTO at SitePen, and has been working and maintaining Dojo 2 for the last couple years. Kitson talks about his journey as a developer. First, sparking his interest with old Atari games and getting his first computer in his early years. Kitson talks about his education background and introduction to computers in high school and hang out with other in the same programming niche. Kitson talks about his challenges not having a degree in computer science, but still very successful as a developer after climbing the corporate latter. In particular, we dive pretty deep on: Atari Games and old first computer Hangout with the computer nerds Community college No actual formal computer science degree Tech Support and Self Taught Challenges with not degree Climbing the latter Troubles even with a degree Is a degree in computer science really needed? Experience verses degree Working with other people is important Getting into JavaScript and Dojo What kept you working in JavaScript How do you get to being CTO and SitePen? What are you most proud of with the work on Dojo Contributions Side Projects - Dojo 2 and much, much more! Links: https://github.com/kitsonk Kistson Kelly https://www.sitepen.com https://dojo.io Picks: Kitson SVG Noun Project Charles adminlte.io Ruby on Rails, Jquery podwrench.com Full Article
it JSJ 293: Big Data with Nishant Thacker By devchat.tv Published On :: Wed, 27 Dec 2017 23:10:00 -0500 Panel: Charles Max Wood Special Guests: Nishant Thacker In this episode, JavaScript Jabber speaks with Nishant Thacker. Nishant is the technical product manager for all things big data at Microsoft. Nishant mentions the many new technologies and announcements he is in-charge of at Microsoft. Nishant is on the show to talk about Big Data and gives advice on how to process data and acquire deep insight of your customers. This is a great episode to understand the development of data systems that are the backbone of some marketing tools. In particular, we dive pretty deep on: Processing Metrics Processing into report and usable information Data lake Collecting data points Creating and maintaining the data lake in its raw form Scale up engines and limits Commodity machines and leverage Big data means to scale out Specialized engines for audio and video files How to have a cohesive report? Writing and Querying across data Storing raw data and retrieve data Data cluster What does the data box look like? And much more! Links: https://www.linkedin.com/in/nishantthacker @nishantthacker Picks: Nishant Robot I Charles Zoom H6 Shure SM 58 Lavalier Mics Full Article
it JSJ 294: Node Security with Adam Baldwin By devchat.tv Published On :: Wed, 03 Jan 2018 20:21:00 -0500 Panel: Charles Max Wood AJ O’Neal Joe Eames Special Guests: Adam Baldwin In this episode, JavaScript Jabber panelist speak with Adam Baldwin. Adam is a return guest and has many years of application security experience. Currently, Adam runs the Node Security Project/Node Security Platform, and Lift Security. Adam discusses the latest of security of Node Security with Charles and AJ. Discussion topics cover security in other platforms, dependencies, security habits, breaches, tokens, bit rot or digital atrophy, and adding security to your development. In particular, we dive pretty deep on: What is the Node Security Project/Node Security Platform Dependency trees NPM Tokens and internal data What does Node Security do for me? NPX and NSP Command Line CIL Bit Rot or Digital Atrophy How often should you check repos. Advisories If I NPM install? Circle CI or Travis NSP Check What else could I add to the securities? Incorporate security as you build things How do you find the vulnerabilities in the NPM packages Two Factor authentication for NPM Weak Passwords OL Dash? Install Scripts Favorite Security Story? And much more! Links: Node Security Lift Security https://github.com/evilpacket @nodesecurity @liftsecurity @adam_baldwin Picks: Adam Key Base Have I been Pwned? Charles Nettie Pot convo.com AJ This Episode with Adam Baldwin Free the Future of Radical Price Made In America Sam Walton Sonic - VGM Album Joe Pych - Movie NG Conf Why We Don’t Suck Full Article
it JSJ 295: Developers as Entrepreneurs with Ryan Glover By devchat.tv Published On :: Tue, 09 Jan 2018 00:07:00 -0500 Panel: Charles Max Wood Cory House Joe Eames Aimee Knight Special Guests: Ryan Glover In this episode, JavaScript Jabber panelist speak with Ryan Glover. Ryan is on JavaScript Jabber to talks about Entrepreneurship as a developer. Ryan runs Clever Beagle in Chicago Illinois. Clever Beagle is a mentorship company that helps people build their first software Product. Ryan and the panel discuss the many roads of entrepreneurship, startup business ideas, servicing and teaching the community, how to’s, and psychological challenges, hiring, seeing your ideas through to the end, and privilege. In particular, we dive pretty deep on: How do you get started as an entrepreneur? Clever Beagle The Meteor Chef Where are people getting stuck on the builds? Fear, unknowns Simple, but not easy Drive and ability to step into the unknown Survival of the fittest Hire before you are already Losing your marbles Starting on a smaller scale How do I know my idea is going to work? Book - Brick by Brick Multiple lines of business Managing a portfolio of business Revenue streams Marketing Quitter When do I quit? 6-12 months of cash before you quit Making mistakes in entrepreneurship? Be a reader and study Go out a read books! Experiential not taught Luck and Privilege Video - Life of Privilege Explained in a $100 Race Procrastinate on Purpose And much more! Links: Clever Beagle The Meteor Chef https://www.linkedin.com/in/ryangglover http://www.ryanglover.net Brick by Brick Quitter Procrastinate on Purpose Do Thing That Don’t Scale @rglover Picks: Cory The Power of Moments The 50th Law Charles ReactDevSummit.com Indiegogo for Dev Chat .NetRocks Aimee Life of Privilege Explained in a $100 Race Joe Everybody Lies Murder on the Orient Express Ryan Turning Pro - Steven Pressfield series The Power of Beliefs in Business Full Article
it JSJ 296: Changes in React and the license with Azat Mardan By devchat.tv Published On :: Tue, 16 Jan 2018 11:47:00 -0500 Panel: Charles Max Wood Cory House Joe Eames Aimee Knight Special Guests: Azat Mardan In this episode, JavaScript Jabber panelist speak with Azat Mardan. Azat is a return guest, previously on JSJ Episode 230. Azat is an author of 14 books on Node JS, JavaScript, and React JS. Azat works at Capital One on the technology team. Azat is the founder and creator of Node University. Azat is on the show to talk about changes in React and licensing. Some of the topics cover Facebook, licensing with React, using the wrong version of React, patent wars, and much more in-depth information on current events in React. In particular, we dive pretty deep on: Facebook - Licensing with React Using the Wrong version of React in some companies BSD licensing Patent wars Facebook developing React Difference in Preact and Inferno Rewriting applications What did Capital One do about the changes? React 16 Pure React Was the BSD patents - Med and Sm Companies Patents explained React Developers at Facebook Fiber - New Core Architecture And much more! Links: http://azat.co https://node.university https://devchat.tv/js-jabber/230-jsj-node-at-capital-one-with-azat-mardan Picks: Cory Axel Rauschmayer post Prettier Charles Indiegogo for Dev Chat forum.devchat.tv Aimee Dev Tees Hacker News - Question on Stack Exchange and Estimates Joe Heroku El Camino Christmas Azat PMP Azat - Short Lecture Full Article
it JSJ 297: Scrollytelling with Russell Goldenberg and Adam Pearce By devchat.tv Published On :: Tue, 23 Jan 2018 18:45:00 -0500 Panel: Charles Max Wood Joe Eames Aimee Knight Special Guests: Russell Goldenberg and Adam Pearce In this episode, JavaScript Jabber panelist speak with Russell Goldenberg and Adam Pearce Russell creates visualizations, interactive graphics, and documentaries for the web. Currently an editor at The Pudding. Adam is a graphics editor at The New York Times and a journalist engineers/developer Russell and Adam are on the show to talk about what Scrollytelling is, as well as Scrollama. Scrollama is a modern and lightweight JavaScript library for scrollytelling using IntersectionObserver in favor of scroll events. This is a great episode to understand another technology/tool created with JavaScript. In particular, we dive pretty deep on: What is Scrollytelling! Graph Scroll library What is the intersection Observerable? How long does it take to build an interactive graphic…? How do you test something like this? Test on a lot of different devices Can you do automated testing? Do you have to understand the use cases or can you implement quickly? Recommendation for getting started? Is this a skill set people have to have before that some on board? How do design these interactions? Scroll jacking What JS developers should know about this technology. Position sticky What are other uses cases? What can devs use it for? Tax calculator And much more! Links: https://github.com/russellgoldenberg/scrollama https://pudding.cool/process/introducing-scrollama/ @codenberg @adamrpearce https://pudding.cool/ http://russellgoldenberg.github.io https://github.com/1wheel?direction=desc&sort=created&tab=stars https://roadtolarissa.com Picks: Adam Dominion - Broad Game Charles Smoker Tiny Epic Galaxies Indiegogo Dev Chat TV Aimee Deadlines Quest Protein Powder Joe Giving! Board Game - Azul Russel Crokinole Bust Out Full Article
it JSJ 298: Angular, Vue and TypeScript with John Papa By devchat.tv Published On :: Tue, 30 Jan 2018 21:35:00 -0500 Panel: Charles Max Wood Cory House Joe Eames Aimee Knight Special Guests: John Papa In this episode, JavaScript Jabber panelist speak with John Papa. John has been doing web programming for over twenty years on multiple platforms and has been contributing to the developer communities through conferences, authoring books, videos and courses on Pluralsight. John is on the show to discuss an articles he wrote on A Look at Angular Along Side Vue, and another article on Vue.js with TypeScript. John talks about the new features with the different versions of Angular technologies, anxiety in the different features, comparisons between the technologies and use case with Angular. In particular, we dive pretty deep on: A look at Angular Along Side Vue - Article Angular 5, Amber,Vue, React, Angular Angular 2 - different features CLI Spell Webpack Comparisons - Why the anxiety? Opinions of Angular and sprinkling in other technologies Vue is the easy to use with Angular Are there breakpoints with the uses case? Choosing technologies Talk about working with Vue and Angular DSL - Domain Specific Language Vue and 3rd party libraries Talk about Vue working with TypeScript Vue.js with TypeScript Vue with TypeScript looks similar to Angular Vetur What does 2018 have in store for Angular? Native apps and web functionality And much more! Links: https://johnpapa.net Vue.js with TypeScript A Look at Angular Along Side Vue @john_papa https://github.com/johnpapa Picks: Corey cypress.io Charles E Myth Revisited Profit First Dunkirk Aimee Crucial Conversations Ripple or XRP Joe The Greatest Showman Better Late Then Never Vue 7 Languages In 7 Weeks - Book John Jumanji 2017 Emotional Intelligence Full Article
it JSJ 299: How To Learn JavaScript When You're Not a Developer with Chris Ferdinandi By devchat.tv Published On :: Tue, 06 Feb 2018 20:10:00 -0500 Panel: AJ O’Neal Joe Eames Aimee Knight Special Guests: Chris Ferdinandi In this episode, JavaScript Jabber panelist speak with Chris Ferdinandi. Chris teaches vanilla JavaScript to beginners and those coming from a design background. Chris mentions his background in Web design and Web Develop that led him JavaScript development. Chris and the JSJ panelist discuss the best ways to learn JavaScript, as well as resources for learning JavaScript. Also, some discussion of technologies that work in conjunction with vanilla JavaScript. In particular, we dive pretty deep on: Teaching JavaScript - Beginners and Design patrons Web Design and Web Development CSS Tricks Todd Motto How to do jQuery Things without jQuery Doing things like mentors (Todd) When JavaScript makes sense. CSS is easier to learn then JS? Being good at CSS and JS at the same time? How about Node developers? jRuby, DOM Documentation And much more! Links: https://github.com/cferdinandi https://gomakethings.com @ChrisFerdinandi https://www.linkedin.com/in/cferdinandi Picks: AJ Discover Card Mistborn Aimee Your Smart Phone is Making You Stupid… Crypto Currency Joe Mystic Vale Kedi Chris https://gomakethings.com Teva Mush Full Article
it JSJ 301: CSS Grids: The Future of Frontend Layout with Dave Geddes By devchat.tv Published On :: Tue, 20 Feb 2018 06:00:00 -0500 Panel: Charles Max Wood Aimee Knight Cory House AJ O'Neal Joe Eames Aaron Frost Special Guests: Dave Geddes In this episode, the JavaScript Jabber panelists talk with Dave Geddes about CSS Grids. Dave quit his job about a year ago and has been living the entrepreneur and programmer life since then. Now, he builds mastery games to help people learn CSS. Dave discusses the differences between Flexbox and CSS Grid and how the games that he creates can help people learn CSS Grid in a fun and interactive way. In particular, we dive pretty deep on: CSS Mastery games FlexboxZombies.com GridCritters.com Uses spaced repetition and delayed recall to learn CSS Grid Flexbox CSS Grid as the cake and Flexbox as the frosting Edge spec What Flexbox can do Sub-Grids Geddski.com Nesting Grids Old Grid vs New Grid layout Why would you move from Flexbox to CSS Grid? CSS Grid tools GridByExample.com Education and Gamification Pick a UI that interests you For a discount on Grid Critters: enter JS Jabber for 20% off And much, much more! Links: Linode FlexboxZombies.com GridCritters.com Geddski.com GridByExample.com FreshBooks @Geddski Picks: Charles R Pods Earphones Aimee NEU Cleanse “At Age 6, Girls Are Less Likely to Identify Females As ‘Really, Really Smart’” Cory Cory Tweet AJ How to Start a Startup Made in America by Sam Walton Joe The Dungeoneers by John David Anderson NG Conf Aaron Fire and Fury by Michael Wolff Dave They Are Billions Full Article
it JSJ 302: Evaluating Web Frameworks with Kitson Kelly By devchat.tv Published On :: Tue, 27 Feb 2018 06:00:00 -0500 Panel: Charles Max Wood Aimee Knight AJ O'Neal Special Guests: Kitson Kelly In this episode, the JavaScript Jabber panelists talk with Kitson Kelly about evaluating web frameworks. Kitson is currently in Australia working for ThoughtWorks as a principle technologist. He has written many articles on frameworks and urges that people don’t get stuck on one framework in their programming. He talks about how using only frameworks that you know could hurt you in the long run. This episode is great for understanding when to use certain JavaScript frameworks and how branching out from what is comfortable might make your job easier. In particular, we dive pretty deep on: Articles on web frameworks How do you pick a JavaScript framework to use? The framework depends on your changing needs Recommending less popular frameworks Angular, Ember, React React vs Redux Certain domains with different frameworks? Each framework takes a different approach How to decide which framework to use? Only give it a couple days to see if your app works with the framework Is it ever appropriate to not use a certain framework? Frameworks are there to make your job easier Don’t be afraid to try new frameworks Choose a framework that will “be there tomorrow” What is the future for frameworks? Experiment and be honest with what you need And much, much more! Links: Linode ThoughtWorks Kendo UI LootCrate @KitsonK Kitson’s GitHub Picks: Charles Facebook The 12 Week Year by Brian P. Moore Google Drive for Business Aimee Would College Students Retain More If Professors Dialed Back The Pace? URL to PDF Converter CSS History AJ Tylenol Cold and Flu Severe Kitson Microsoft Azure Zype Full Article
it JSJ 303: Test Coverage Tools with Ben Coe, Aaron Abramov, and Issac Schleuter By devchat.tv Published On :: Tue, 06 Mar 2018 06:00:00 -0500 Panel: Charles Max Wood Aimee Knight Corey House AJ O'Neal Special Guests: Ben Coe, Aaron Abramov, and Issac Schleuter In this episode, the JavaScript Jabber panelists talk with Ben Coe, Aaron Abramov, and Issac Schleuter about test coverage and testing tools. They talk about the different tools and libraries that they have contributed to the coding community, such as NYC, conf, and Jest. They also discuss what test coverage is actually about and when using test coverage tools is necessary. In particular, we dive pretty deep on: What have you contributed to the testing tools community? npm NYC tool and instanbul project conf Jest These libraries were developed to be easy and have “batteries included” False positives with test coverage Encourage testing practices that don’t practice in a superficial way Test coverage is about making sure you test every state a public API can get into Think through the test you’re writing first Barriers against testing Don’t spike the code too quickly Provides guardrails for newer developers to contribute to open source projects Use tests to understand the system How to spend your time better When you need tests Value is very short term TDD And much, much more! Links: @BenjaminCoe @AaronAbramov_ Issac’s GitHub Picks: Charles React Roundup Views on Vue Adventures in Angular React Dev Summit 2018 Aimee Galentine’s Day Dnote CLI AJ The Hero of Ages by Brandon Sanderson Corey We are hive project guidelines Tip: You can install node as a dependency on your project Ben Hack Illinois 2018 C8 Aaron Reason Issac The Tap 100 Krypton App Friendly Fire Podcasts Full Article
it JSJ 305: Continuous Integration, Processes, and DangerJS with Orta Therox By devchat.tv Published On :: Tue, 20 Mar 2018 06:00:00 -0400 Panel: Charles Max Wood Aimee Knight Joe Eames AJ O'Neal Special Guests: Orta Therox In this episode, the JavaScript Jabber panelists talk about the tool Danger with Orta Therox. Danger allows you to create cultural rules about your pole request workflow. They discuss what Danger is, how it works, and how it can help you to catch errors and speed up code review. Danger lets you erase discussions so that you can focus on the things that you should really be focusing on, like the code. They also compare Danger to other ways of doing test converge. In particular, we dive pretty deep on: What is DangerJS? Think of it as being on the PR level Provides an eval context Used on larger projects React, React Native, Apollo, and RxJS Experimenting with moving Danger onto a server Danger can run as a linting step Pre-commit hooks Prettier How do you use Danger on your own machine? Danger Ruby vs Danger JS NPM install How is using Danger better that other ways of test coverage? What kinds of rules can you write for this system? Can use with Ruby or JavaScript React Storybooks Retrospectives And much, much more! Links: React Dev Summit JS Dev Summit Danger JS React React Native Apollo RxJS Prettier Danger Ruby Ruby JavaScript Orta’s GitHub Artsy Blog Picks: Charles Hogwarts Battle Board Game Sushi Go Party! Game NYC tips Aimee Max Stoiber Blog The Ultimate Guide to Kicking Ass on Take-home Coding Challenges Joe SaltCON Stuffed Fables Board Game AJ UniFi AC Lite Fullmetal Alchemist Orta The Wire Worm Web Serial Full Article
it JSJ 306: The Framework Summit with Joe Eames By devchat.tv Published On :: Tue, 27 Mar 2018 06:00:00 -0400 Panel: Charles Max Wood Cory House Aimee Knight Joe Eames AJ O'Neal In this episode, the JavaScript Jabber panelists talk about the Framework Summit. It was the brainchild of Merrick Christensen. This summit includes talks on multiple different frameworks all in a two-day conference, which allows you to get exposed to new frameworks while still learning more about the framework your job requires you to use. Another goal of the conference is that it will be able to open people’s eyes up to the different frameworks available to them and show that no one framework is superior to another. In particular, we dive pretty deep on: What is the Framework Summit? The framework you use plays a huge role in your programming For people who want to learn about more than one framework Allows you to explore The format of the conference Park City, Utah in October 2018 Helps you answer which framework should you use? Goal is to open people’s eyes up to other frameworks Decrease internet arguments over which framework is better Fluent Conference Get to have conversation with other people who work in your framework Making connections React Rally Talk Evan Czaplicki The context matters Being able to deep dive into the different frameworks Using frameworks in conjunction with one another Have you seen “religionist” themes in programming frameworks? Why Good People Are Divided by Politics and Religion by Jonathan Haidt Some people will never look beyond their frameworks If it’s working, why would you mess with it? And much, much more! Links: React Dev Summit JS Dev Summit Framework Summit Angular React Ember JavaScript Fluent Conference React Rally Talk Evan Czaplicki Why Good People Are Divided by Politics and Religion by Jonathan Haidt @FrameworkSummit Picks: Charles Parked Out By the Lake Dustin Christensen DevChat.tv Newspaper by Themeforest Cory Quokka Aimee Republic of Tea – Apple Cider Vinegar Tea The Way of Testivus Joe Evan Czaplicki Talk AJ Dinosaurs Cough Syrup by Young the Giant Full Article
it JSJ 307: Apollo with Peggy Rayzis By devchat.tv Published On :: Tue, 03 Apr 2018 09:47:00 -0400 Panel: Charles Max Wood Aimee Knight AJ ONeal Special Guests: Peggy Rayzis In this episode, the JavaScript Jabber panelists talk about Apollo with Peggy Rayzis. Peggy is an open source engineer on the Apollo team where she primarily focuses on client stuff, working on Apollo Client, and also other libraries. Previously, she was a UI engineer at Major League Soccer where she worked primarily with React and React Native. She discusses what GraphQL is and how it is used, as well as how they use it in the Apollo team to make their lives as developers easier. They also touch on when it would work best to use GraphQL and when it is not ideal to use it. In particular, we dive pretty deep on: AiA 127 Episode Peggy intro What is GraphQL? What is a Typed Query Language? What is a schema? Where do schemas get defined? GraphQL SDL Apollo Stack and Apollo Server Tracing and cash control Apollo Engine How GraphQL Replaces Redux GraphQL cuts down on front-end management Apollo Link State The best code is no code Apollo Client allows for greater developer productivity Does the conversation change if you’re not using Redux or in a different ecosystem? When is the right time to use this? Data doesn’t have to be graph shaped to get the most out of GraphQL Analyze schema with Apollo Engine Is there a way to specify depth? Max Stoiber blog post How would people start using this? HowtoGraphQL.com And much, much more! Links: React Dev Summit JS Dev Summit Apollo AiA 127 Episode Apollo Client Major League Soccer React React Native GraphQL GraphQL SDL Apollo Server Apollo Engine How GraphQL Replaces Redux Apollo Link State Redux Max Stoiber blog post HowtoGraphQL.com @PeggyRayzis Peggy’s GitHub Peggy’s Medium Picks: Charles GraphQL Ruby WordPress GraphQL Hogwarts Battles Board Game Pandemic Legacy Risk Legacy Aimee How GraphQL Replaces Redux JavaScript Meetup in LA AJ Simple.com BroccoliWallet.com The Four by Scott Galloway Peggy Workshop.me Thanks for the Feedback by Douglas Stone Full Article
it JSJ 308: D3.js with Ben Clinkinbeard By devchat.tv Published On :: Tue, 10 Apr 2018 06:00:00 -0400 Panel: Joe Eames Cory House Aimee Knight Special Guests: Ben Clinkinbeard In this episode, the JavaScript Jabber panelists talk about D3.js with Ben Clinkinbeard. D3.js is a JavaScript library that has you use declarative code to tell it what you want and then it figures out all of the browser inconsistencies and creates the notes for you. He talks about the two main concepts behind D3, scales and selections, which once you understand make D3 a lot more user friendly. He then touches on SPGs and discusses his Learn D3 in 5 Days course. In particular, we dive pretty deep on: What is D3.js? Stands for Data Driven Documents JavaScript How much of the learning curve is attributed to learning D3? SPG 2 main concepts behind D3: scales and selections Is learning about SPGs a prerequisite to leaning D3? How serious are you talking when saying idiosyncrasies? SPG tag Understanding positioning in SPG Positions with CSS transforms Are you required to use SPG? Not required to use SPG with D3 Canvas SPG is vector based SPG utility function Responseivefy Learn D3 in 5 Days course Is there and overlap with D3 and React? And much, much more! Links: D3.js JavaScript Responsivefy Learn D3 in 5 Days course React @bclinkinbeard Ben’s GitHub Picks: Cory React cheat sheet “Why software engineers disagree about everything” by Haseeb Qureshi Joe Eames “JavaScript vs. TypeScript vs. ReasonML” by Dr. Axel Rauschmayer Aimee “How To Use Technical Debt In Your Favor” Neuroscience News Twitter Ben ComLink Full Article
it JSJ 309: WebAssembly and JavaScript with Ben Titzer By devchat.tv Published On :: Tue, 17 Apr 2018 06:00:00 -0400 Panel: Charles Max Wood Cory House Aimee Knight Special Guests: Ben Titzer In this episode, the JavaScript Jabber panelists discuss WebAssembly and JavaScript with Ben Titzer. Ben is a JavaScript VM engineer and is on the V8 team at Google. He was one of the co-inventors of WebAssembly and he now works on VM engineering as well as other things for WebAssembly. They talk about how WebAssembly came to be and when it would be of most benefit to you in your own code. In particular, we dive pretty deep on: Ben intro JavaScript Co-inventor of WebAssembly (Wasm) Joined V8 in 2014 asm.js Built a JIT compiler to make asm.js faster TurboFan What is the role of JavaScript? What is the role of WebAssembly? SIMD.js JavaScript is not a statically typed language Adding SIMD to Wasm was easier Easy to add things to Wasm Will JavaScript benefit? Using JavaScript with Wasm pros and cons Pros to compiling with Wasm Statically typed languages The more statically typed you are, the more you will benefit from Wasm TypeScript Is WebAssembly headed towards being used in daily application? Rust is investing heavily in Wasm WebAssembly in gaming And much, much more! Links: JavaScript V8 WebAssembly asm.js TurboFan TypeScript Rust WebAssembly GitHub Ben’s GitHub Picks: Charles Ready Player One Movie DevChat.tv YouTube Alexa Flash Briefings: Add skill for “JavaScript Rants” Cory npm Semantic Version Calculator Kent Beck Tweet Aimee MDN 418 Status code Quantity Always Trumps Quality blog post Ben American Politics Full Article
it JSJ 310: Thwarting Insider Threats with Greg Kushto By devchat.tv Published On :: Tue, 24 Apr 2018 06:00:00 -0400 Panel: Charles Max Wood Cory House AJ O’Neal Aimee Knight Special Guests: Greg Kushto In this episode, the JavaScript Jabber panelists discuss thwarting insider threats with Greg Kushto. Greg is the vice president of sales engineering for Force 3 and has been focused on computer security for the last 25 years. They discuss what insider threats are, what the term includes, and give examples of what insider threats look like. They also touch on some overarching principles that companies can use to help prevent insider threats from occurring. In particular, we dive pretty deep on: Greg intro Insider threats are a passion of his Most computer attacks come from the inside of the company Insider threats have changed over time What does the term “insider threats” include? Using data in an irresponsible manner Who’s fault is it? Blame the company or blame the employee? Need to understand that insider threats don’t always happen on purpose How to prevent insider threats Very broad term Are there some general principles to implement? Figure out what exactly you are doing and documenting it Documentations doesn’t have to be a punishment Know what data you have and what you need to do to protect it How easy it is to get hacked Practical things to keep people from clicking on curious links The need to change the game Fighting insider threats isn’t fun, but it is necessary And much, much more! Links: Force 3 Greg’s LinkedIn @Greg_Kushto Greg’s BLog Picks: Charles HaveIBeenPwned.com Plural Sight Elixir podcast coming soon NG conf MicroConf RubyHack Microsoft Build Cory Plop VS code sync plugin Aimee Awesome Proposals GitHub AJ O’Neal Fluffy Pancakes The Mind and the Brain by Jeffrey M. Schwartz Greg StormCast Full Article
it JSJ 311: Securing Express Apps with Helmet.js with Evan Hahn By devchat.tv Published On :: Tue, 01 May 2018 06:00:00 -0400 Panel: Charles Max Wood Special Guests: Evan Hahn In this episode, the JavaScript Jabber panelists discuss securing Express apps with Helmet.js with Evan Hahn. Evan is a developer at Airtable, which is a company that builds spreadsheet applications that are powerful enough that you can make applications with. He has also worked at Braintree, which does payment processing for companies. They talk about what Helmet.js is, when you would want to use it, and why it can help secure your Express apps. They also touch on when you wouldn’t want to use Helmet and the biggest thing that it saves you from in your code. In particular, we dive pretty deep on: Evan intro JavaScript What is Helmet.js? Node and Express Why would you use the approach of Middleware? Helmet is not the only solution Http headers Current maintainer of Helmet.js npm Has added a lot to the project, but is not the original creator Outbound HTTP response headers Helmet doesn’t fully secure your app but it does help secure it How does using Helmet work? Are there instances when you wouldn’t want to use Helmet? No cash middleware Where do you set the configuration options? Top level Helmet module 12 modules What is the biggest thing that Helmet saves you from? Content security policy code And much, much more! Links: Airtable Braintree JavaScript Helmet.js Node Express npm Evan’s Website @EvanHahn Evan’s GitHub Picks: Charles Camera Zoom H6 Shure SM58 DevChat.tv Youtube React Round Up Evan Clojure Fortune Kantaro: The Sweet Tooth Salaryman Full Article
it JSJ 312: Hygen with Dotan Nahum By devchat.tv Published On :: Wed, 09 May 2018 14:57:00 -0400 Panel: Charles Max Wood Aimee Knight AJ ONeal Special Guests: Dotan Nahum In this episode, the JavaScript Jabber panelists discuss Hygen with Dotan Nahum. Dotan has worked within open source community, where he created Hygen. They talk about what Hygen is, how it came to be, and code generators in general. He was inspired by the Rails generator to create his own generator and took his inspiration from 12 years prior to creating Hygen. They also touch on how to share generators in separate packages and much more! In particular, we dive pretty deep on: Dotan intro What is Hygen? Code generators Rails in 2006 Ruby on Rails 15-minute blog video PHP and Python Carried Rails wow moment with him into creating Hygen Wanted Rails generators everywhere Can you also modify files? Took the good things from Rails generator The fact that front-end apps have architecture is new Redux The solution of generating code A component is a ray of files and assets JavaScript gives you great freedom A standardized way of doing components GraphQL Everything lives in the “day job” project How the Hygen template is formatted Can have a shell action Is there a way to share generators in a separate package? Go And much, much more! Links: Hygen Rails Ruby on Rails 15-minute blog video Python Redux JavaScript GraphQL Go @jondot Dotan’s GitHub Dotan’s Medium Picks: Charles Fluent Conf Hot Jar DevChat.tv Ethereum Aimee Deep-copying in JavaScript AJ Let’s Encrypt Nintendo Switch Breath of the Wild Dotan asdf Brew Cask Full Article
it JSJ 313: Light Functional JavaScript with Kyle Simpson By devchat.tv Published On :: Tue, 15 May 2018 10:37:00 -0400 Panel: AJ ONeal Aimee Knight Joe Eames Special Guests: Kyle Simpson In this episode, the JavaScript Jabber panelists discuss light functional JavaScript with Kyle Simpson. Kyle is most well-known for writing the books You Don’t Know JS and is on the show today for his book Functional-Light JavaScript. They talk about what functional programming is, what side-effects are, and discuss the true heart behind functional programming. They also touch on the main focus of functional programming and much more! In particular, we dive pretty deep on: You Don’t Know JS Functional-Light JavaScript From the same spirit as first books JavaScript Documents journey of learning What does Functional Programming mean? Functional programming is being re-awoken Many different definitions History of functional programming Programming with functions What is a function? “A collection of operations of doing some task” is what people think functions are What a function really is Map inputs to outputs What is a side-effect? Side-effects should be intentional and explicit The heart of functional programming Refactoring Can’t write a functional program from scratch What functional programming focuses on Making more readable and reliable code Pulling a time-stamp Defining a side-effect And much, much more! Links: You Don’t Know JS Functional-Light JavaScript JavaScript Kyle’s GitHub @getify Picks: Aimee What Does Code Readability Mean? @FunctionalKnox HTTP 203 Podcast AJ IKEA Joe Barking Up the Wrong Tree by Eric Barker Workshops in general Kyle GDPR The start-up’s guide to the GDPR Hatch Fluent Conf Full Article
it JSJ 314: Visual Studio Code and the VS Code Azure Extension with Matt Hernandez and Amanda Silver LIVE at Microsoft Build By devchat.tv Published On :: Tue, 22 May 2018 08:32:00 -0400 Panel: Charles Max Wood Special Guests: Matt Hernandez and Amanda Silver In this episode, the JavaScript Jabber/Adventures In Angular, panelists discuss Visual Studio Code and the VS Code Azure Extension with Matt Hernandez and Amanda Silver at Microsoft Build. Amanda is the director of program management at Microsoft working on Visual Studio and VS Code. Matt works on a mix between the Azure and the VS Code team, where he leads the effort to build the Azure extensions in VS code, trying to bring JavaScript developers to Azure through great experiences in VS Code. They talk about what’s new in VS Code, how the Azure extension works, what log points are, and much more! In particular, we dive pretty deep on: Amanda intro Matt intro What’s new in VS Code? VS Code core VS Live Share Shared Terminal Now have Linux support Live Share is now public to the world for free What would you use Shared Terminal for? Are there other things coming up in VS Code? Constantly responding to requests from the community Live Share works for any language How does the Azure extension work? Azure App Service Storage extension Azure Cosmos DB What are log points? All a part of a larger plan to create a better experience for JS developers Visual debuggers Is it the same plugin to support everything on Azure? Want to target specific services that node developers will take advantage of And much, much more! Links: Visual Studio VS Code Azure Live Share Azure Cosmos DB Microsoft Build Azure App Service Amanda’s GitHub @amandaksilver Matt’s GitHub @fiveisprime Picks: Charles Orphan Black Shout out to VS Code team Battle of the Books Matt The Customer-Driven Playbook by Travis Lowdermilk The Speed of Trust by Stephen M.R. Covey Yes, And by Kelly Leonard Digital Marketing For Dummies by Ryan Deiss Ed Gets His Power Back Kickstarter Amanda Microsoft Quantum Development Kit for Visual Studio Code Iggy Peck, Architect Tek by Patrick McDonnell Full Article
it JSJ 315: The effects of JS on CSS with Greg Whitworth By devchat.tv Published On :: Wed, 30 May 2018 06:00:00 -0400 Panel: AJ O’Neal Aimee Knight Special Guests: Greg Whitworth In this episode, the JavaScript Jabber panelists discuss the effects of JavaScript on CSS with Greg Whitworth. Greg works on Microsoft EdgeHTML, specifically working on the Microsoft Layout team, is on the CSS working group, and is involved with the Houdini task force. They talk about JS engines and rendering engines, what the CSSOM is, why it is important to understand the rendering engine, and much more! In particular, we dive pretty deep on: Greg intro What is the Houdini task force? Extensible web manifesto DOM (Document Object Model) Layout API Parser API Babel jQuery Back to basics JavaScript engine and rendering engine What is the CSSOM? Every browser has its separate JS engine Browsers perspective Aimee ShopTalk Podcast Episode Why is it important to understand how the rendering engine is working? Making wise decisions Give control back to browser if possible When you would want to use JavaScript or CSS Hard to make a hard or fast rule CSS is more performant Overview of steps And much, much more! Links: Parser API Babel jQuery Aimee ShopTalk Podcast Episode JavaScript @gregwhitworth GWhitworth.com Greg’s GitHub Sponsors Kendo UI Linode FreshBooks Picks: AJ Microsoft Surface Microsoft Cursor Aimee Greg’s Talk What Your Conference Proposal Is Missing by Sarah Mei Greg Aimee ShopTalk Podcast Episode Jake Archibald Tasks Talk Full Article
it JSJ 316: Visual Studio Code with Rachel MacFarlane and Matt Bierner LIVE at Microsoft Build By devchat.tv Published On :: Tue, 05 Jun 2018 06:00:00 -0400 Panel: Charles Max Wood Special Guests: Rachel MacFarlane and Matt Bierner In this episode, the JavaScript Jabber panelists discuss Visual Studio Code with Rachel MacFarlane and Matt Bierner, who are both developers on Visual Studio Code. They talk about what the workflow at Visual Studio Code looks like, what people can look forward to coming out soon, and how people can follow along the VS Code improvements on GitHub and Twitter. They also touch on their favorite extensions, like the Docker extension and the Azure extension and their favorite VS Code features. In particular, we dive pretty deep on: Rachel and Matt intro Month to month workflow of Visual Studio Code VS Code JavaScript, TypeScript, and Mark Down support Working on GitHub and within the community Check out new features incrementally with insiders Community driven work What is coming out in Visual Studio Code? GitHub helps to determine what they work on Working on Grid View Improved settings UI Highlighting unused variables in your code Improvements with JS Docs Dart Visual Studio Extension API How do people follow along with the VS Code improvements? Follow along on GitHub and Twitter Download VS Code Insiders Have a general road map of what the plan is for the year Technical debt week What do you wish people knew about VS Code? Favorite extensions Docker extension and Azure extension And much, much more! Links: Visual Studio Code JavaScript TypeScript Dart VS Code GitHub @Code VS Code Insiders Docker extension Azure extension Rachel’s GitHub Matt’s GitHub MattBierner.com @mattbierner Sponsors Kendo UI Linode FreshBooks Picks: Charles Orphan Black Avengers: Infinity War Fishing Rachel GitLens Matt The Bronx Warriors Full Article
it JSJ 317: Prisma with Johannes Schickling By devchat.tv Published On :: Tue, 12 Jun 2018 06:00:00 -0400 Panel: Charles Max Wood AJ O’Neal Special Guests: Johannes Schickling In this episode, the JavaScript Jabber panelists discuss Prisma with Johannes Schickling. Johannes is the CEO and co-founder of GraphCool and works with Prisma. They talk about the upcoming changes within GraphCool, what Prisma is, and GraphQL back-end operations. They also touch on the biggest miscommunication about Prisma, how Prisma works, and much more! In particular, we dive pretty deep on: JSJ Episode 257 MJS Episode 055 Raised a seed round Rebranding of GraphCool What are you wanting to do with the seed money you raised? Focused on growing his team currently Making GraphQL easier to do The change in the way people build software What is Prisma? Two things you need to do as you want to adopt GraphQL Apollo Client and Relay GraphQL on the back-end Resolvers Resolving data in one query Prisma supports MySQL and PostgreSQL How do you control access to the GraphQL endpoint that Prisma gives you? Biggest miscommunication about Prisma Prisma makes it easier for you to make your own GraphQL server Application schemas How do you blend your own resolvers with Prisma? And much, much more! Links: JSJ Episode 257 MJS Episode 055 GraphCool Prisma GraphQL Apollo Client Relay MySQL PostgreSQL @schickling Johannes’ GitHub Schickling.me Prisma Slack Sponsors Kendo UI Linode FreshBooks Picks: Charles Audible The 5 Love Languages of Children by Gary Chapman Facebook Backyard Homesteader Groups CharlesMaxWood.com Sling TV Roku Express AJ The Legend of Zelda: Breath of the Wild Johannes Figma Netlify Functions GraphQL Europe Full Article
it JSJ 318: Cloud-Hosted DevOps with Ori Zohar and Gopinath Chigakkagari LIVE at Microsoft Build By devchat.tv Published On :: Mon, 18 Jun 2018 06:00:00 -0400 Panel: Charles Max Wood Special Guests: Ori Zohar and Gopinath Chigakkagari In this episode, the JavaScript Jabber panelists discuss Cloud-Hosted DevOps with Ori Zohar and Gopinath Chigakkagari at Microsoft Build. Ori is on the product team at VSTS focusing on DevOps specifically on Azure. Gopinath is the group program manager in VSTS primarily working on continuous integration, continuous delivery, DevOps, Azure deployment, etc. They talk about the first steps people should take when getting into DevOps, define DevOps the way Microsoft views it, the advantages to automation, and more! In particular, we dive pretty deep on: Ori and Gopi intro VSTS – Visual Studio Team Services VSTS gives developers the ability to be productive Developer productivity What’s the first big step people should be taking if they’re getting into DevOps? The definition of DevOps The people and the processes as the most important piece DevOps as the best practices Automating processes What people do when things go wrong is what really counts Letting the system take care of the problems Have the developers work on what they are actually getting paid for Trend of embracing DevOps Shifting the production responsibility more onto the developer’s Incentivizing developers People don’t account for integration Continuous integration Trends on what customers are asking for Safety Docker containers And much, much more! Links: Azure Microsoft Build VSTS @orizhr Ori’s GitHub Gopi’s GitHub @gopinach Sponsors Kendo UI Linode FreshBooks Picks: Charles .NET Rocks! Shure SM58 Microphone Zoom H6 Ori Fitbit Pacific Northwest Hiking Gopinath Seattle, WA Full Article
it JSJ 319: Winamp2-js with Jordan Eldredge By devchat.tv Published On :: Tue, 26 Jun 2018 06:00:00 -0400 Panel: Charles Max Wood AJ ONeal Aimee Knight Joe Eames Special Guests: Jordan Eldredge In this episode, the JavaScript Jabber panelists discuss Winamp2-js with Jordan Eldredge. Jordan is the creator of Winamp2-js and was inspired to create this media player from the old Winamp media player that he used back in the day. They talk about the importance of limitations, the value of having fun side projects, and pushing the boundaries. They also touch on skin parsing, making Webamp an electron app, and more! In particular, we dive pretty deep on: What is Winamp2-js? The history and future of Winamp WACUP Winamp was the first big mp3 player that you could style Webamp’s features and the technical challenges associated with them Why JavaScript? Creative solutions Limitations of browser and creating something that previously existed The importance of limitations Hadn’t done very much JavaScript prior to this project Originally created with jQuery Led him into a career in JavaScript Pushing the boundaries Skin parsing “Bitrot” and making Winamp skins accessible again The value of side projects, even stupid ones Architecture docs What made you choose React and Redux? Spotiamp (Soptify’s canceled Winamp client) Making Webamp an Electron app Winamp visualizers being ported to the web The domain name webamp.org And much, much more! Links: Winamp2-js Webamp JavaScript jQuery Architecture docs React Redux jordaneldredge.com Jordan’s GitHub @captbaritone Sponsors Kendo UI FreshBooks Loot Crate Picks: Charles JAM XT Speaker Trello AJ Samson GoMic Greenlock for Web Servers Greenlock for Node.js Aimee KA Engineering Principles Joe 2ality.com What if JavaScript wins? Medium post Jordan JavaScript Garden Rust @winampskins Full Article
it JSJ 320: Error Tracking and Troubleshooting Workflows with David Cramer LIVE at Microsoft Build By devchat.tv Published On :: Tue, 03 Jul 2018 06:00:00 -0400 Panel: Charles Max Wood Alyssa Nicholl Ward Bell Special Guests: David Cramer In this episode, the JavaScript Jabber panelists talk to David Cramer about error tracking and troubleshooting workflows. David is the founder and CEO of Sentry, and is a software engineer by trade. He started this project about a decade ago and it was created because he had customers telling him that things were broken and it was hard to help them fix it. They talk about what Sentry is, errors, workflow management, and more! In particular, we dive pretty deep on: David intro Founder and CEO of Sentry What is Sentry? Working with PHP De-bugger for production Focus on workflow Goal of Sentry Triaging the problem Workflow management Sentry started off as an open-source side project Instrumentation for JavaScript Ember, Angular, and npm Got their start in Python Logs Totally open-source Most compatible with run-time Can work with any language Deep contexts Determining the root cause And much, much more! Links: Sentry JavaScript Ember Angular npm Python Sentry’s GitHub @getsentry David’s GitHub David’s Website @zeeg Sponsors Kendo UI FreshBooks Loot Crate Picks: Charles Socks as Swag David VS Code Kubernetes Full Article
it JSJ 321: Babel and Open Source Software with Henry Zhu By devchat.tv Published On :: Tue, 10 Jul 2018 06:00:00 -0400 Panel: Charles Max Wood Aimee Knight AJ ONeal Joe Eames Special Guests: Henry Zhu In this episode, the JavaScript Jabber panel talks to Henry Zhu about Babel and open source software. Henry is one of the maintainers on Babel, which is a JavaScript compiler, and recently left this job to work on doing open source full time as well as working on Babel. They talk about where Babel is today, what it actually is, and his focus on his open source career. They also touch on how he got started in open source, his first PR, and more! In particular, we dive pretty deep on: Henry intro Babel update Sebastian McKenzie was the original creator of Babel Has learned a lot about being a maintainer What is Babel? JavaScript compiler You never know who your user is Has much changed with Babel since Sebastian left? Working on open source How did you get started in pen source? The ability to learn a lot from open source Atrocities of globalization More decentralization from GitHub Gitea and GitLab Gitea installer Open source is more closed now His first PR JSCS Auto-fixing Prettier Learning more about linting You don’t have to have formal training to be successful Codefund.io Sustainability of open source And much, much more! Links: Babel JavaScript Gitea GitLab Gitea installer Prettier Codefund.io @left_pad Henry’s GitHub henryzoo.com Henry’s Patreon Sponsors Kendo UI Sentry Digital Ocean Picks: Charles Orphan Black Crucial Accountability by Kerry Patterson Aimee Desk with cubby holes for cats The Key to Good Luck Is an Open Mind blog post AJ Gitea Gitea installer Greenlock Joe Solo Justified Henry Celeste Zeit Day talks Full Article
it JSJ 322: Building SharePoint Extensions with JavaScript with Vesa Juvonen LIVE at Microsoft Build By devchat.tv Published On :: Tue, 17 Jul 2018 06:00:00 -0400 Panel: Charles Max Wood Special Guests: Vesa Juvonen In this episode, the JavaScript Jabber panel talks to Vesa Juvonen about building SharePoint extensions with JavaScript. Vesa is on the SharePoint development team and is responsible for the SharePoint Framework, which is the modern way of implementing SharePoint customizations with JavaScript. They talk about what SharePoint is, why they chose to use JavaScript with it, and how he maintains isolation. They also touch on the best way to get started with SharePoint, give some great resources to help you use it, and more! In particular, we dive pretty deep on: Vesa intro What is SharePoint? Has existed since 2009 People either know about it and use it or don’t know what it is Baggage from a customization perspective Why JavaScript developers? Modernizing development SharePoint Framework Microsoft Ignite Conference Is there a market for it? System integrators Angular Element and React React for SharePoint Framework back-end Supports Vue React Round Up Podcast How do you maintain isolation? What’s the best way to get started with SharePoint extensions? Office 365 Developer Program SharePoint documentation SharePoint YouTube What kinds of extensions are you seeing people build? And much, much more! Links: SharePoint JavaScript SharePoint Framework Microsoft Ignite Conference Angular Element React Vue React Round Up Podcast Office 365 Developer Program SharePoint documentation SharePoint YouTube @OfficeDev @vesajuvonen Vesa’s blog Vesa’s GitHub @SharePoint Sponsors Kendo UI Sentry Digital Ocean Picks: Charles Zig Ziglar Conversations with My Dog by Zig Ziglar Pimsleur Lessons on Audible Vesa Armada by Ernest Cline Full Article
it JSJ 323: "Building a JavaScript platform that gives you the power to build your own CDN" with Kurt Mackey By devchat.tv Published On :: Thu, 26 Jul 2018 15:50:00 -0400 Panel: Charles Max Wood AJ ONeal Special Guests: Kurt Mackey In this episode, the JavaScript Jabber panel talks to Kurt Mackey about Fly.io. At Fly.io, they are "building a JavaScript platform that gives you the power to build your own CDN." They talk about how Fly.io came to fruition, how CDN caching works, and what happens when you deploy a Fly app. They also touch on resizing images with Fly, how you actually build JavaScript platforms using Fly, and more! In particular, we dive pretty deep on: Fly.io Building a programmable CDN High level overview of Fly.io How did this project come together? CDNs didn’t work with dynamic applications Has been working on this since 2008 Extend application logic to the “edge” Putting burden of JavaScript “nastiest” onto the web server Fly is the proxy layer Getting things closer to visitors and users CDN caching Cache APIs Writing logic to improve your lighthouse score Have you built in resizing images into Fly? Managing assets closer to the user Can you modify your own JavaScript files? What happens when you deploy a Fly app Having more application logic DOM within the proxy Ghost React and Gatsby Intelligently loading client JavaScript How do you build the JavaScript platform? And much, much more! Links: Fly.io JavaScript Ghost Gatsby React @flydotio @mrkurt Kurt at ARS Technica Kurt’s GitHub Sponsors Kendo UI Sentry Digital Ocean Picks: Charles GitLab AJ Gitea Black Panther Kurt Packet.net The Three-Body Problem by Cixin Liu Full Article
it JSJ 324: with Kent Beck By devchat.tv Published On :: Tue, 31 Jul 2018 06:00:00 -0400 Panel: Charles Max Wood Joe Eames Aimee Knight Special Guests: Kent Beck In this episode, the JavaScript Jabber panel talks to Kent Beck. Kent left Facebook 4 months ago after working for them for 7 years and is now self-unemployed so that he can decompress from the stressful environment that he was a part of for so long. He now travels, writes, creates art, thinks up crazy programming ideas, and is taking a breather. They talk about what he did at Facebook, what his coaching engagement sessions consisted of, and the importance of taking time for yourself sometimes. They also touch on what he has learned from his experience coaching, how to create a healthy environment within the workplace, and more! In particular, we dive pretty deep on: Kent intro/update Ruby Rogues Episode 23 Worked at Facebook for 7 years What were you doing at Facebook? Unique culture at Facebook His strengths as a developer didn’t match with the organization’s Coaching developers TDD and Patterns Advantages as an old engineer What did coaching engagement consist of? Takes time to build trust Discharging shame Need permission to take care of what you need to Being at your best so you can do your best work Vacation in place What have you learned in your time working with people? The nice thing about coaching Everyone is different How do we create a healthy environment within the workplace? Mentor in Ward Cunningham What is it costing us? Why did you decide to leave? And much, much more! Links: Ruby Rogues Episode 23 @KentBeck kentbeck.com Kent’s GitHub Sponsors Kendo UI Sentry Digital Ocean Picks: Charles The Five Dysfunctions of a Team by Patrick Lencioni Crucial Accountability by Kerry Patterson Aimee n-back Joe Test Driven Development: By Example by Kent Beck Kent The Field Guide to Understanding 'Human Error' by Sidney Dekker Conspiracy: Peter Thiel, Hulk Hogan, Gawker, and the Anatomy of Intrigue by Ryan Holiday Full Article
it JSJ 325: Practical functional programming in JavaScript and languages like Elm with Jeremy Fairbank By devchat.tv Published On :: Tue, 07 Aug 2018 06:00:00 -0400 Panel: Aimee Knight Joe Eames AJ ONeal Special Guests: Jeremy Fairbank In this episode, the JavaScript Jabber panel talks to Jeremy Fairbank about his talk Practical Functional Programming. Jeremy is a remote software developer and consultant for Test Double. They talk about what Test Double is and what they do there and the 6 things he touched on in his talk, such as hard to follow code, function composition, and mutable vs immutable data. They also touch on the theory of unit testing, if functional programming is the solution, and more! In particular, we dive pretty deep on: Jeremy intro Works for Test Double What he means by “remote” What is Test Double? They believe software is broken and they are there to fix it His talk - Practical Functional Programming The 6 things he talked about in his talk Practical aspects that any software engineer is going to deal with Purity and the side effects of programming in general Hard to follow code Imperative VS declarative code Code breaking unexpectedly Mutable data VS immutable data The idea of too much code Combining multiple functions together to make more complex functions Function composition Elm, Elixir, and F# Pipe operator Scary to refactor code Static types The idea of null The theory of unit testing Is functional programming the solution? His approach from the talk And much, much more! Links: Test Double His talk - Practical Functional Programming Elm Elixir F# @elpapapollo jeremyfairbank.com Jeremy’s GitHub Jeremy’s YouTube Sponsors Kendo UI Sentry Digital Ocean Picks: Aimee American Dollar Force with lease AJ Superfight Joe The 2018 Web Developer Roadmap by Brandon Morelli Svelte Jeremy Programming Elm The Secrets of Consulting by Gerald M. Weinberg Connect.Tech Full Article
it JSJ 326: Conversation with Ember co-creator Tom Dale on Ember 3.0 and the future of Ember By devchat.tv Published On :: Tue, 14 Aug 2018 06:00:00 -0400 Panel: Joe Eames Aimee Knight AJ ONeal Special Guests: Tom Dale In this episode, the JavaScript Jabber panel talks to Tom Dale about Ember 3.0 and the future of Ember. Tom is the co-creator of Ember and is a principle staff engineer at LinkedIn where he works on a team called Presentation Infrastructure. They talk about being in the customer service role, having a collaborative culture, and all the information on Ember 3.0. They also touch on the tendency towards disposable software, the Ember model, and more! In particular, we dive pretty deep on: How Joe met Tom Programmers as rule breakers The pressure to conform Tom intro Staff engineer at LinkedIn Customer service role Having a way to role improvements out to a lot of different people JavaScript and Ember at LinkedIn Having a collaborative culture All about Ember 3.0 Banner feature – there is nothing new Cracked how you develop software in the open source world that has longevity Major competition in Backbone previously The Ember community has never been more vibrant Tendency towards disposable software The idea of steady iteration towards improvement The Ember model Being different from different frameworks Ember adoption rates Python 3 Valuable from a business perspective to use Ember Ember community being friendly to newbies How much Ember VS how much JavaScript will a new developer have to learn? And much, much more! Links: Ember LinkedIn JavaScript Backbone Python @tomdale tomdale.net Tom’s GitHub Sponsors Kendo UI Sentry Digital Ocean Picks: Joe Framework Summit Jayne React sent Evan You a cake Aimee Maker's Schedule, Manager's Schedule by Paul Graham AJ James Veitch Tom JavaScript Tech Talk Drake’s Ties Melissa Watson Ellis at Hall Madden Full Article
it JSJ 327: "Greenlock and LetsEncrypt" with AJ O'Neal By devchat.tv Published On :: Tue, 21 Aug 2018 06:00:00 -0400 Panel: Charles Max Wood Joe Eames Special Guests: AJ O'Neal In this episode, the JavaScript Jabber panel talks to AJ O'Neal about Greenlock and LetsEncrypt. LetsEncrypt is a brand name and is the first of its kind in automated SSL and Greenlock does what Certbot does in a more simplified form. They talk about what led him to create Greenlock, compare Greenlock to Certbot, and what it’s like to use Greenlock. They also touch on Greenlock-express, how they make Greenlock better, and more! In particular, we dive pretty deep on: Greenlock and LetsEncrypt overview LetsEncrypt is free to get your certificate Why Charles uses LetsEncrypt Wildcard domains Certbot Why he originally created Greenlock Working towards home servers Wanted to get HTTP on small devices Manages a certificate directory Greenlock VS Certbot Greenlock can work stand alone The best use case for Greenlock Excited about how people are using his tool What is it like to use Greenlock? Working on a desktop client Greenlock-express Acme servers CAA record Making Greenlock better by knowing how people are using it Using Greenlock-express Let's Encrypt v2 Step by Step by AJ And much, much more! Links: LetsEncrypt Greenlock Certbot Greenlock-express Acme servers Let's Encrypt v2 Step by Step by AJ @coolaj86 coolaj86.com AJ’s Git Greenlock.js Screencast Series Greenlock.js Patreon Sponsors Kendo UI Sentry Digital Ocean Picks: Charles Take some time off AJ OverClocked Records Full Article
it JSJ 328: Functional Programming with Ramda with Christine Legge By devchat.tv Published On :: Tue, 28 Aug 2018 06:00:00 -0400 Panel: Joe Eames Aimee Knight AJ O'Neal Joe Eames Special Guests: Christine Legge In this episode, the JavaScript Jabber panel talks to Christine Legge about functional programming with Ramda. Christine is a front-end software engineer and just recently got a new job in New York working at Google. Ramda is a utility library in JavaScript that focuses on making it easier to write JavaScript code in a functional way. They talk about functional programming and what it is, using Ramda in Redux, and referential transparency. They also touch on why she first got into Ramda, compare Ramda to Lodash and Underscore, and more! In particular, we dive pretty deep on: Chirstine intro Works as a front-end software engineer What is Ramda? JavaScript Utility library like Lodash and Underscore Lodash and Underscore VS Ramda Functional programming Ramda and Functional programming as a mindset Ramda at ZenHub Ramda with Redux and React What is referential transparency? Why would you use Ramda VS Lodash or Underscore? Why she first got into Ramda Didn’t always want to be a programmer Background in Math Learning functional programming as a new programmer Erlang DrRacket and Java Ramda makes it easy to compose functions Creating clean and reusable code How do you start using Ramda? And much, much more! Links: Ramda Lodash Underscore ZenHub Redux React Erlang DrRacket @leggechr Chirstine’s GitHub Sponsors Kendo UI Sentry Digital Ocean Picks: Charles Home Depot Tool Rental Podcast Movement CES VRBO Aimee Apple Cider Vinegar Jeremy Fairbank Talk – Practical Functional Programming AJ Goat’s Milk Joe Topgolf Framework Summit Christine Dan Mangan Reply All Podcast Full Article
it JSJ 329: Promises, Promise.finally(), and Async/await with Valeri Karpov By devchat.tv Published On :: Tue, 04 Sep 2018 06:00:00 -0400 Panel: Charles Max Wood AJ O’Neal Aimee Knight Special Guests: Valeri Karpov In this episode, the panel talks with programmer, Valerie Karpov from Miami, Florida. He is quite knowledgeable with many different programs, but today’s episode they talk specifically about Async/Await and Promise Generators. Val is constantly busy through his different endeavors and recently finished his e-book, “Mastering Async/Await.” Check-out Val’s social media profiles through LinkedIn, GitHub, Twitter, and more. Show Topics: 1:20 – Val has been on previous episodes back in 2013 & 2016. 1:37 – Val’s background. He is very involved with multiple companies. Go checkout his new book! 2:39 – Promises generators. Understand Promises and how things sync with Promises. Val suggests that listeners have an integrated understanding of issues like error handling. 3:57 – Chuck asks a question. 6:25 – Aimee’s asks a question: “Can you speak to why someone would want to use Async/Await?” 8:53 – AJ makes comments. 10:09 – “What makes an Async/Await not functional?” – Val 10:59 – “What’s wrong with Promises or Async/Await that people don’t like it?” - AJ 11:25 – Val states that he doesn’t think there really is anything wrong with these programs it just depends on what you need it for. He thinks that having both gives the user great power. 12:21 – AJ’s background is with Node and the Python among other programs. 12:55 – Implementing Complex Business Logic. 15:50 – Val discusses his new e-book. 17:08 – Question from Aimee. 17:16 – AJ answers question. Promises should have been primitive when it was designed or somewhat event handling. 17:46 – The panel agrees that anything is better than Call Backs. 18:18 – Aimee makes comments about Async/Await. 20:08 – “What are the core principles of your new e-book?” – Chuck 20:17 – There are 4 chapters and Val discusses, in detail, what’s in each chapter. 22:40 – There could be some confusion from JavaScript for someone where this is their first language. Does Async/Await have any affect on the way you program or does anything make it less or more confusing in the background changes? 24:30 – Val answers the before-mentioned question. Async/Await does not have anyway to help with this (data changes in the background). 25:36 – “My procedural code, I know that things won’t change on me because it is procedural code. Is it hard to adjust to that?” – AJ 26:01 – Val answers the question. 26:32 – Building a webserver with Python. 27:31 – Aimee asks a question: “Do you think that there are cases in code base, where I would want to use Promises? Not from a user’s perspective, but what our preferences are, but actual performance. Is there a reason why I would want to use both or be consistent across the board?” 28:17 – Val asks for some clarification to Aimee’s question. 29:14 – Aimee: “My own personal preference is consistency. Would I want to use Promises in ‘x’ scenario and/or use Async/Await in another situation?” 32:28 – Val and AJ are discussing and problem solving different situations that these programs 33:05 – “When would you not want to use Async/Await?” – AJ 33:25 – Val goes through the different situations when he would not use Async/Await. 33:44 – Chuck is curious about other features of Async/Await and asks Val. 36:40 – Facebook’s Regenerator 37:11 – AJ: “Back in the day, people would be really concerned with JavaScript’s performance even with Chrome.” He continues his thoughts on this topic. 38:11 – Val answers the AJ’s question. 39:10 – Duck JS probably won’t include generators. 41:18 – Val: “Have anyone used Engine Script before?” The rest of the panel had never heard of this before. 42:09 – Windows Scripting Host 42:56 – Val used Rhino in the past. 43:40 – Val: “Going back to the web performance question...” 47:08 – “Where do you see using Async/Await the most?” – Chuck 47:55 – Val uses Async/Await for everything on the backend because it has made everything so easy for him. 48:23 – “So this is why you really haven’t used Web Pack?” – AJ 49:20 – Let’s go to Aimee’s Picks! 50:18 – AJ’s story, first, before we get to Promises. 54:44 – Let’s transition to Promises Finally. 54:53 – Val talks about Promises Finally. 59:20 – Picks Links: JavaScript Valeri Karpov’s GitHub Valeri Karpov’s Twitter Valeri Karpov’s LinkedIn New E-Book: Mastering Async/Await Node Python Windows Scripting Host Facebook’s Regenerator Rhino Sponsors: Kendo UI Sentry Digital Ocean Picks: Charles YouTube Video “IKEA” by Coulton Conference Amazon Prime Day Aimee Blog Post Article AJ IKEA https://ppl.family Val https://www.npmjs.com/package/serve http://bit.ly/ultimate-skiing http://asyncawait.net/jsjabber New E-Book: Mastering Async/Await Full Article
it JSJ 330: “AWS: Amplify” with Nader Dabit By devchat.tv Published On :: Tue, 11 Sep 2018 06:00:00 -0400 Panel: AJ O’Neal Aimee Knight Joe Eames Special Guests: Nader Dabit In this episode, the panel talks with programmer, Nader Dabit, who has been with Amazon’s AWS for the past six months. They discuss the new innovations that Amazon is currently working on, and the exciting new projects that Nader gets to be involved with. Check out this episode to hear all the latest! Show Topics: 1:45 – There are two main things that Nader works with. Check out this timestamp to see what they are. 3:29 – AJ to Nader: Tell me more about manage cloud. I am not sure about Cognito. 3:56 – Yes, Cognito is used by/through Amazon. 5:06 – What are the other manage cloud services that companies want to offer through the tools you have? 5:12 – Nader answers AJ’s question. 7:30 – Can you give me more specifics on the storage solutions you are offering? 8:03 – Nader answers AJ’s question. People store websites there for example. Frontend developers are using S3 buckets, and they are using the library, which is a storage solution. 9:10 – AJ and Nader are having a dialogue between different situations, and Nader is giving the solutions to those hypothetical situations. 10:17 – AJ: “I am interested in what you are talking about AppSync. Can you tell me how that works?” AJ is picking Nader’s brain about how AppSync works. 11:05 – Nader: “It is a single API layer for a point of entry. You can have multi-data sources.” Nader continues, in detail, answering AJ’s question. 12:36 – AJ: As a frontend developer, it sounds like I will have to become familiar with the backend, too. How is it providing the most value? What is it that I do not have to touch, because I am using this? 15:37 – How would these relations work? As a frontend developer, and I do not want to learn sequel, how would that might look like; currently or in the future? How do you extract that knowledge? 16:18 – Yes, it is not an easy solution to solve. Nader goes into detail about how he would approach this situation. 18:26 – AJ: Are these resolvers written in JavaScript? 22:04 – Acronym fun! 22:45 – Node 23:51 – Summarizing these pasts 20-some-minutes: Off-Storage, AppSync, Landis, and others are what people are using Amplify for. New Question/New Topic: Simplify. 25:45 – AWS MOBILE – is not mobile specific. 26:44 – If you are using Angular, we have a plugin in Angular to help you. We also have that for React and Vue as well. 27:52 – Advertisement 28:56 – What should we be talking about? 29:04 – Let’s talk about Amazon’s Lex, Chat Bot. Nader goes into full detail of this service. 33:52 – Apple T.V. 34:00 – AJ: Sounds like this is more platform/ more agnostic than getting different things to come together, and the Microsoft one is more hybrid and the Amazon one is more open? 35:13 – Joe, let’s go back to what you had to ask. 35:28 – Nader, you talked about PUSH notifications earlier. What is Pub/Sub? 36:30 – Is this like traditional hooks? Or custom? 37:25 – What is the “stuff” that gets you up in the morning and gets you excited to go to work at AWS? 38:40 – Nader: I really had no desire to change career paths, but it happened. 41:30 – AJ: I totally agree with the idea in that finding the common patterns, so that way someone on the lower-level can participate. AJ wants a platform that is open or purchase that can offer some of these benefits. It could be open-source or you used to buy the different tools. 43:27 AJ: What about for the hobbyist? 43:40 – Nader: I agree, that would be really nice. I can’t think of any free services that would be nice. 44:03 AJ – Not free in “free,” but “free” towards the idea of “free speech.” They would all be available and you get to choose what works well for you. 45:00 – SHOUTOUT to LISTENERS: Have an idea about this? Shoot the panel an e-mail! 45:33 – Hopefully this opens the listeners’ eyes to what’s out there. 45:48 – Cloud services. 46:55 – Innovation follows niche markets. When something gets big and established, innovation comes to a plateau. The innovation will develop in a new economic area like hydraulics. AJ thinks a niche will develop. 49:03 – Is there anything, Dabit, which you would like to talk about? 49:15 – Can we talk about AI as a service? 51:10 – Nader saw a demonstration recently. 52:26 – Hearing these implications is so cool, but when it comes to ML a panelist dabbled a little bit. He watched some videos, unless you want to devote a year or two to learning it then it’s too complex to put together. Do you have to be genius-level to get through? 53:29 – ML you are passing data. Nader is not quite sure. 56:00 Nader just did a blog post check-it-out! 56:49 – Let’s do Picks! 56:50 – Advertisement Links: Nader Dabit’s Twitter Nader Dabit’s Medium Nader Dabit’s LinkedIn Nader Dabit’s GitHub Nader Dabit’s Website Nader Dabit’s YouTube channel Nader Dabit’s Egg Head JavaScript Amazon’s Cognito AWS AppSyncNode Landis AWS Mobile Vue Angular Amazon’s Lex – Chat Bot Apple T.V. Push Notifications Pub/Sub AWS’ Artificial Intelligence (AI) Sponsors: Kendo UI Sentry Digital Ocean Picks: AJ O’Neal Blog / Thoughty 2’s Video: Pop Music The Innovator’s Solution / Book The Innovator’s Dilemma / Book Joe Eames Framework Summit - Tickets are still available! Movie: Equalizer 2 Nader Dabit Finland – Graph Talks Conference, October AWS – San Francisco - LOFT Full Article
it JSJ 331: “An Overview of JavaScript Testing in 2018” with Vitali Zaidman By devchat.tv Published On :: Tue, 18 Sep 2018 06:00:00 -0400 Panel: AJ O’Neal Aimee Knight Joe Eames Charles Max Wood Special Guests: Vitali Zaidman In this episode, the panel talks with programmer, Vitali Zaidman, who is working with Software Solutions Company. He researches technologies and starts new projects all the time, and looks at these new technologies within the market. The panel talks about testing JavaScript in 2018 and Jest. Show Topics: 1:32 – Chuck: Let’s talk about testing JavaScript in 2018. 1:53 – Vitali talks about solving problems in JavaScript. 2:46 – Chuck asks Vitali a question. 3:03 – Vitali’s answer. 3:30 – Why Jest? Why not Mocha or these other programs? 3:49 – Jest is the best interruption of what testing should look like and the best practice nowadays. There are different options, they can be better, but Jest has this great support from their community. There are great new features. 4:31 – Chuck to Joe: What are you using for testing nowadays? 4:43 – Joe: I use Angular, primarily. 6:01 – Like life, it’s sometimes easier to use things that make things very valuable. 7:55 – Aimee: I have heard great things about Cypress, but at work we are using another program. 8:22 – Vitali: Check out my article. 8:51 – Aimee: There are too many problems with the program that we use at work. 9:39 – Panelist to Vitali: I read your article, and I am a fan. Why do you pick Test Café over Cypress, and how familiar are you with Cypress? What about Selenium and other programs? 10:12 – Vitali: “Test Café and Cypress are competing head-to-head.” Listen to Vitali’s suggestions and comments per the panelists’ question at this timestamp. 11:25 – Chuck: I see that you use sign-on... 12:29 – Aimee: Can you talk about Puppeteer? It seems promising. 12:45 – Vitali: Yes, Puppeteer is promising. It’s developed by Google and by Chrome. You don’t want to use all of your tests in Puppeteer, because it will be really hard to do in other browsers. 13:26: Panelist: “...5, 6, 7, years ago it was important of any kind of JavaScript testing you had no idea if it worked in one browser and it not necessarily works in another browser. That was 10 years ago. Is multiple browsers testing as important then as it is now? 14:51: Vitali answers the above question. 15:30 – Aimee: If it is more JavaScript heavy then it could possibly cause more problems. 15:56 – Panelist: I agree with this. 16:02 – Vitali continues this conversation with additional comments. 16:17 – Aimee: “I see that Safari is the new Internet Explorer.” 16:23: Chuck: “Yes, you have to know your audience. Are they using older browsers? What is the compatibility?” 17:01 – Vitali: There are issues with the security. Firefox has a feature of tracking protection; something like that. 17:33 – Question to Vitali by Panelist. 17:55 – Vitali answers the question. 18:30 – Panelist makes additional comments. 18:43 – If you use Safari, you reap what you sow. 18:49 – Chuck: I use Chrome on my iPhone. (Aimee does, too.) Sometimes I wind up in Safari by accident. 19:38 – Panelist makes comments. 19:52 – Vitali tells a funny story that relates to this topic. 20:45 – There are too many standards out there. 21:05 – Aimee makes comments. 21:08 – Brutalist Web Design. Some guy has this site – Brutalist Web Design – where he says use basic stuff and stop being so custom. Stop using the web as some crazy platform, and if your site is a website that can be scrolled through, that’s great. It needs to be just enough for people to see your content. 22:16 – Aimee makes additional comments about this topic of Brutalist Web Design. 22:35 – Panelist: I like it when people go out and say things like that. 22:45 – Here is the point, though. There is a difference between a website and a web application. Really the purpose is to read an article. 23:37 – Vitali chimes in. 24:01 – Back to the topic of content on websites. 25:17 – Panelist: Medium is very minimal. Medium doesn’t feel like an application. 26:10 – Is the website easy enough for the user to scroll through and get the content like they want to? 26:19 – Advertisement. 27:22 – See how far off the topic we got? 27:31 – These are my favorite conversations to have. 27:39 – Vitali: Let’s talk about how my article got so popular. It’s an interesting thing, I started researching “testing” for my company. We wanted to implement one of the testing tools. Instead of creating a presentation, I would write first about it in Medium to get feedback from the community as well. It was a great decision, because I got a lot of comments back. I enjoyed the experience, too. Just write about your problem in Medium to see what people say. 28:48 – Panelist: You put a ton of time and energy in this article. There are tons of links. Did you really go through all of those articles? 29:10 – Yes, what are the most permanent tools? I was just reading through a lot of comments and feedback from people. I tested the tools myself, too! 29:37 – Panelist: You broke down the article, and it’s a 22-minute read. 30:09 – Vitali: I wrote the article for my company, and they ad to read it. 30:24 – Panelist: Spending so much time – you probably felt like it was apart of your job. 30:39 – Vitali: I really like creating and writing. It was rally amazing for me and a great experience. I feel like I am talented in this area because I write well and fast. I wanted to express myself. 31:17 – Did you edit and review? 31:23 – Vitali: I wrote it by myself and some friends read it. There were serious mistakes, and that’s okay I am not afraid of mistakes. This way you get feedback. 32:10 – Chuck: “Some people see testing in JavaScript, and people look at this and say there are so much here. Is there a place where people can start, so that way they don’t’ get too overwhelmed? Is there a way to ease into this and take a bite-size at a time?” 32:52 – Vitali: “Find something that works for them. Read the article and start writing code.” He continues this conversation from here on out. 34:03 – Chuck continues to ask questions and add other comments. 34:16 – Vitali chimes-in. 34:38 – Chuck. 34:46 – Vitali piggybacks off of Chuck’s comments. 36:14 – Panelist: Let’s go back to Jest. There is a very common occurrence where we see lots of turn and we see ideas like this has become the dominant or the standard, a lot of people talk about stuff within this community. Then we get this idea that ‘this is the only thing that is happening.’ Transition to jQuery to React to... With that context do you feel like Jest will be a dominant program? Are we going to see Jest used just as common as Mocha and other popular programs? 38:15 – Vitali comments on the panelist’s question. 38:50 – Panelist: New features. Are the features in Jest (over Jasmine, Mocha, etc.) so important that it will drive people to it by itself? 40:30 – Vitali comments on this great question. 40:58 – Panelist asks questions about features about Jest. 41:29 – Vitali talks about this topic. 42:14 – Let’s go to picks! 42:14 – Advertisement. Links: Vitali Zaidman’s Facebook Vitali Zaidman’s Medium Vitali Zaidman’s GitHub Vitali Zaidman’s NPM Vitali Zaidman’s LinkedIn Vitali Zaidman’s Medium Article JavaScript Brutalist Web Design Jasmine Cypress React jQuery Jest Protractor – end to end testing for Angular Test Café Intern Sinon XKCD Sponsors: Kendo UI Sentry Digital Ocean Cache Fly Picks: AJ O’Neal Continuous from last week’s episode: Crossing the Chasm – New Technologies from Niche to General Adaptation. Go Lang Joe Eames Board Game: Rajas of the Ganges Framework Summit Conference in Utah React Conference Aimee Knight Hacker News – “Does Software Understand Complexity” via Michael Feathers Cream City Code Chuck E-Book: How do I get a job? Express VPN Vitali Book: The Square and The Tower: Networks and Power, from the Freemasons to Facebook by Niall Ferguson My article! Full Article
it JSJ 332: “You Learned JavaScript, Now What?” with Chris Heilmann By devchat.tv Published On :: Tue, 25 Sep 2018 06:00:00 -0400 Panel: AJ O’Neal Aimee Knight Joe Eames Charles Max Wood Special Guests: Chris Heilmann In this episode, the panel talks with programmer, Chris Heilmann. He has written books about JavaScript, in addition to writing a blog about it and is an educator about this program. He currently resides in Berlin, Germany. Let’s welcome our special guest and listen to today’s episode! Show Topics: 2:19 – Chuck talks. 2:41 – Chris: He has talked about JavaScript in Berlin upon an invitation. You can get five different suggestions about how to use JavaScript. The best practices, I have found, are on the projects I am on now. JavaScript was built in ten days. My goal is to help people navigate through JavaScript and help them feel not disenfranchised. 5:47 – Aimee: The overall theme is... 5:54 – Panelist: I really like what you said about helping people not feeling disenfranchised. 6:47 – Chris: There is a lot of peer pressure at peer conferences 7:30 – Aimee chimes in with some comments. 7:50: Chris: I think we need to hunt the person down that put... 8:03 – Panelist: A good point to that is, I try to avoid comments like, “Well, like we ALL know...” 8:27 – Chris: There are things NOT to say on stage. It happens, but we don’t want to say certain things while we are teaching people. We are building products with different groups, so keep that in mind. 9:40 – Aimee: My experience in doing this is that I have found it very rewarding to share embarrassing experiences that I’ve had. My advice would to tell people to let their guard down. It’s encouraging for me. 10:26 – Chris: It helps to show that you are vulnerable and show that you are still learning, too. We are all learning together. 90% of our job is communicating with others. 11:05 – Chuck: Now, I do want to ask this... 11:35 – Chris answers. 12:24 – What makes you say that? (Question to Chris) 12:25 – Chris answers. 13:55 – Chuck: The different systems out there are either widely distributed or... You will have to work with other people. There is no way that people can make that on their own. If you can’t work with other people, then you are a hindrance. 14:31 – Aimee chimes in. 14:53 – Chris: They have to be very self-assured. I want to do things that are at the next level. Each developer has his or her own story. I want to move up the chain, so I want to make sure these developers are self-assured. 16:07 – Chris: Back to the article... 18:26 – Chuck: Yes, I agree. Why go and fight creating a whole system when it exists. 18:54 – Chris chimes in with some comments. 19:38 – Panelist: I still use console logs. 19:48 – Chris: We all do, but we have to... 19:55 – Aimee: In the past year, I can’t tell you how much I rely on this. Do I use Angular? Do I learn Vue? All those things that you can focus on – tools. 10:21 – Chris: We are talking about the ethics of interfaces. Good code is about accessibility, privacy and maintainability, among others. Everything else is sugar on top. We are building products for other people. 22:10 – Chuck: That is the interesting message in your post, and that you are saying: having a deep, solid knowledge of React (that is sort of a status thing...). It is other things that really do matter. It’s the impact we are having. It’s those things that will make the difference. Those things people will want to work with and solves their problems. 23:00 – Chris adds his comments. He talks about Flash. 24:05 – Chris: The librarian motto: “I don’t know everything, but I can look “here” to find the answer.” We don’t know everything. 24:31 – Aimee: Learn how to learn. 24:50 – Chris: There is a big gap in the market. Scratch is a cool tool and it’s these puzzle pieces you put together. It was hard for me to use that system. No, I don’t want to do that. But if you teach the kids these tools then that’s good. 24:56 – Chuck: Here is the link, and all I had to do was write React components. 26:12 – Chris: My first laptop was 5x more heavy then this one is. Having access to the Internet is a blessing. 27:24 – Advertisement 28:21 – Chuck: Let’s bring this back around. If someone has gone through boot camp, you are recommending that they get use to know their editor, debugging, etc. Chris: 28:47 – Chris: Yes, get involved within your community. GitHub. This is a community effort. You can help. Writing code from scratch is not that necessary anymore. Why rebuild something if it works. Why fix it if it’s not broken? 31:00 – Chuck talks about his experience. 31:13 – Chris continues his thoughts. Chris: Start growing a community. 32:01 – Chuck: What ways can people get involved within their community? 32:13 – Chris: Meetup. There are a lot of opportunities out there. Just going online and seeing where the conferences 34:08 – Chris: It’s interesting when I coach people on public speaking. Sharing your knowledge and learning experience is great! 34:50 – Chuck: If they are learning how to code then...by interacting with people you can get closer to what you need/want. 35:30 – Chris continues this conversation. 35:49 – Chris: You can be the person that helps with x, y, z. Just by getting your name known then you can get a job offer. 36:23 – Chuck: How do you find out what is really good content – what’s worth your time vs. what’s not worth your time? 36:36 –Chris says, “That’s tricky!” Chris answers the question. 37:19: Chris: The best things out there right now is... 38:45 – Chuck: Anything else that people want to bring up? 39:00 – Chris continues to talk. 42:26 – Aimee adds in her thoughts. Aimee: I would encourage people to... 43:00 – Chris continues the conversation. Chris: Each project is different, when I build a web app is different then when I build a... 45:07 – Panelist: I agree. You talked about abstractions that don’t go away. You use abstractions in what you use. At some point, it’s safe to rly on this abstraction, but not this one. People may ask themselves: maybe CoffeeScript wasn’t the best thing for me. 46:11 – Chris comments and refers to jQuery. 48:58 – Chris continues the conversation. Chris: I used to work on eight different projects and they worked on different interfaces. I learned about these different environments. This is the project we are now using, and this will like it for the end of time. This is where abstractions are the weird thing. What was the use of the abstraction if it doesn’t have longevity? I think we are building things too soon and too fast. 51:04 – Chris: When I work in browsers and come up with brand new stuff. 52:21 – Panelist: Your points are great, but there are some additional things we need to talk about. Let’s take jQuery as an example. There is a strong argument that if you misuse the browser... 53:45 – Chris: The main issue I have with jQuery is that people get an immediate satisfaction. What do we do besides this? 55:58 – Panelist asks Chris further questions. 56:25 – Chris answers. Chris: There are highly frequent websites that aren’t being maintained and they aren’t maintainable anymore. 57:09 – Panelist: Prototypes were invented because... 57:51 – Chris: It’s a 20/20 thing. 58:04 – Panelist: Same thing can be said about the Y2K. 58:20 – Panelist: Yes, they had to solve that problem that day. The reality is... 58:44 – Chris: We learned from that whole experience. 1:00:51 – Chris: There was a lot of fluff around it. 1:01:35 – Panelist: Being able to see the future would be a very helpful thing. 1:01:43 – Chris continues the conversation. 1:02:44 – Chuck: How do people get ahold of you? 1:03:04 – Twitter is probably the best way. 1:03:32 – Let’s go to picks! 1:03:36 - Advertisement Links: JavaScript So you Learned Java Script, what now? – Article WebHint Article by James Sinclair Clank! Angular GitHub Meetup Chris Heilmann’s Twitter Chris Heilmann’s Website Chris Heilmann’s Medium Chris Heilmann’s LinkedIn Chris Heilmann Chris Heilmann’s GitHub Smashing Magazine – Chris Heilmann jQuery CoffeeScript React Elixir Sponsors: Kendo UI Sentry Digital Ocean Cache Fly Picks : Amiee Hacker News - How to deal with dirty side effects in your pure functional JavaScript AJ KeyBase Joe Framework Summit Clank ASMR Charles Get a Coder Job Course The Iron Druid Chronicles Framework Summit Chris Web Unleashed Toronto Kurzgesagt It Is Just You, Everything’s Not Shit Full Article
it JSJ 333: “JavaScript 2018: Things You Need to Know, and a Few You Can Skip” with Ethan Brown By devchat.tv Published On :: Tue, 02 Oct 2018 06:00:00 -0400 Panel: Aimee Knight Joe Eames Charles Max Wood Special Guests: Ethan Brown In this episode, the panel talks with Ethan Brown who is a technological director at a small company. They write software to facilitate large public organizations and help make projects more effective, such as: rehabilitation of large construction projects, among others. There is a lot of government work through the endeavors they encounter. Today, the panel talks about his article he wrote, and other topics such as Flex, Redux, Ruby, Vue.js, Automerge, block chain, and Elm. Enjoy! Show Topics: 2:38 – Chuck: We are here to talk about the software side of things. Let’s dive into what you are looking at mid-year what we need to know for 2018. You wrote this. 3:25 – Ethan: I start off saying that doing this podcast now, how quickly things change. One thing I didn’t think people needed to know was symbols, and now that’s changed. I had a hard time with bundling and other things. I didn’t think the troubles were worth it. And now a couple of moths ago (an open source project) someone submitted a PR and said: maybe we should be using symbols? I told them I’ve had problems in the past. They said: are you crazy?! It’s funny to see how I things have changed. 4:47 – Panel: Could you talk about symbols? 4:58 – Aimee: Are they comparable to Ruby? 5:05 – Ethan talks about what symbols are and what they do! 5:52 – Chuck: That’s pretty close to how that’s used in Ruby, too. 6:04 – Aimee: I haven’t used them in JavaScript, yet. When have you used them recently? 6:15 – Ethan answers the question. 7:17 – Panelist chimes in. 7:27 – Ethan continues his answer. The topic of “symbols” continues. Ethan talks about Automerge. 11:18 – Chuck: I want to dive-into what you SHOULD know in 2018 – does this come from your experience? Or how did you drive this list? 11:40 – Ethan: I realize that this is a local business, and I try to hear what people are and are not using. I read blogs. I think I am staying on top of these topics being discussed. 12:25 – Chuck: Most of these things are what people are talking. 12:47 – Aimee: Web Assembly. Why is this on the list? 12:58 – Ethan: I put on the list, because I heard lots of people talk about this. What I was hearing the echoes of the JavaScript haters. They have gone through a renaissance. Along with Node, and React (among others) people did get on board. There are a lot of people that are poisoned by that. I think the excitement has died down. If I were to tell a story today – I would 14:23 – Would you put block chain on there? And AI? 14:34 – Panel: I think it’s something you should be aware of in regards to web assembly. I think it will be aware of. I don’t know if there is anything functional that I could use it with. 15:18 – Chuck: I haven’t really played with it... 15:27 – Panel: If you wrote this today would you put machine learning on there? 15:37 – Ethan: Machine Learning... 16:44 – Chuck: Back to Web Assembly. I don’t think you were wrong, I think you were early. Web Assembly isn’t design just to be a ... It’s designed to be highly optimized for... 17:45 – Ethan: Well-said. Most of the work I do today we are hardly taxing the devices we are using on. 18:18 – Chuck and panel chime in. 18:39 – Chuck: I did think the next two you have on here makes sense. 18:54 – Panel: Functional programming? 19:02 – Ethan: I have a lot of thoughts on functional programming and they are mixed. I was exposed to this in the late 90’s. It was around by 20-30 years. These aren’t new. I do credit JavaScript to bring these to the masses. It’s the first language I see the masses clinging to. 10 years ago you didn’t see that. I think that’s great for the programming community in general. I would liken it to a way that Ruby on Rails really changed the way we do web developing with strong tooling. It was never really my favorite language but I can appreciate what it did for web programming. With that said...(Ethan continues the conversation.) Ethan: I love Elm. 21:49 – Panelists talks about Elm. *The topic diverts slightly. 22:23 – Panel: Here’s a counter-argument. Want to stir the pot a little bit. I want to take the side of someone who does NOT like functional programming. 24:08 – Ethan: I don’t disagree with you. There are some things I agree with and things I do disagree with. Let’s talk about Data Structures. I feel like I use this everyday. Maybe it’s the common ones. The computer science background definitely helps out. If there was one data structure, it would be TREES. I think STACKS and QUEUES are important, too. Don’t use 200-300 hours, but here are the most important ones. For algorithms that maybe you should know and bust out by heart. 27:48 – Advertisement for Chuck’s E-book Course: Get A Coder Job 28:30 – Chuck: Functional programming – people talk bout why they hate it, and people go all the way down and they say: You have to do it this way.... What pay things will pay off for me, and which things won’t pay off for me? For a lot of the easy wins it has already been discussed. I can’t remember all the principles behind it. You are looking at real tradeoffs. You have to approach it in another way. I like the IDEA that you should know in 2018, get to know X, Y, or Z, this year. You are helping the person guide them through the process. 30:18 – Ethan: Having the right tools in your toolbox. 30:45 – Panel: I agree with everything you said, I was on board, until you said: Get Merge Conflicts. I think as developers we are being dragged in... 33:55 – Panelist: Is this the RIGHT tool to use in this situation? 34:06 – Aimee: If you are ever feeling super imposed about something then make sure you give it a fair shot, first. 34:28 – That’s the only reason why I keep watching DC movies. 34:41 – Chuck: Functional programming and... I see people react because of the hype cycle. It doesn’t fit into my current paradigm. Is it super popular for a few months or...? 35:10 – Aimee: I would love for someone to point out a way those pure functions that wouldn’t make their code more testable. 35:42 – Ethan: Give things a fair shake. This is going back a few years when React was starting to gain popularity. I had young programmers all about React. I tried it and mixing it with JavaScript and...I thought it was gross. Everyone went on board and I had to make technically decisions. A Friend told me that you have to try it 3 times and give up 3 times for you to get it. That was exactly it – don’t know if that was prophecy or something. This was one of my bigger professional mistakes because team wanted to use it and I didn’t at first. At the time we went with Vue (old dog like me). I cost us 80,000 lines of code and how many man hours because I wasn’t keeping an open-mind? 37:54 – Chuck: We can all say that with someone we’ve done. 38:04 – Panel shares a personal story. 38:32 – Panel: I sympathize because I had the same feeling as automated testing. That first time, that automated test saved me 3 hours. Oh My Gosh! What have I been missing! 39:12 – Ethan: Why should you do automated testing? Here is why... You have to not be afraid of testing. Not afraid of breaking things and getting messy. 39:51 – Panel: Immutability? 40:00 – Ethan talks about this topic. 42:58 – Chuck: You have summed up my experience with it. 43:10 – Panel: Yep. I agree. This is stupid why would I make a copy of a huge structure, when... 44:03 – Chuck: To Joe’s point – but it wasn’t just “this was a dumb way” – it was also trivial, too. I am doing all of these operations and look my memory doesn’t go through the roof. They you see it pay off. If you don’t see how it’s saving you effort, at first, then you really understand later. 44:58 – Aimee: Going back to it being a functional concept and making things more testable and let it being clearly separate things makes working in code a better experience. As I am working in a system that is NOT a pleasure. 45:31 – Chuck: It’s called legacy code... 45:38 – What is the code year? What constitutes a legacy application? 45:55 – Panel: 7 times – good rule. 46:10 – Aimee: I am not trolling. Serious conversation I was having with them this year. 46:27 – Just like cars. 46:34 – Chuck chimes in with his rule of thumb. 46:244 – Panel and Chuck go back-and-forth with this topic. 47:14 – Dilbert cartoons – check it out. 47:55 – GREAT QUOTE about life lessons. 48:09 – Chuck: I wish I knew then what I know now. Data binding. Flux and Redux. Lots of this came out of stuff around both data stores and shadow domes. How do you tease this out with the stuff that came out around the same time? 48:51 – Ethan answers question. 51:17 – Panel chimes in. 52:01 – Picks! Links: JavaScript jQuery React Elixir Elm Vue Automerge - GITHUB Functional – Light JavaScript Lego’s Massive Cloud City Star Wars Lego Shop The Traveler’s Gift – Book Jocks Rule, Nerds Drool by Jennifer Wright 2ality – JavaScript and more Cooper Press Book – Ethan Brown O’Reilly Community – Ethan Brown’s Bio Ethan Brown’s Twitter Sponsors: Kendo UI Sentry Digital Ocean Cache Fly Picks: Aimee Pettier Joe Lego - Star Wars Betrayal at Cloud City Functional-Light JavaScript Charles The Traveler’s Gift The Shack The Expanse Ethan Jocks Rule, Nerd Drool JavaScipt Blog by Dr. Axel Rauschmayer Cooper Press Full Article
it JSJ 334: “Web Performance API” with Dan Shappir By devchat.tv Published On :: Tue, 09 Oct 2018 06:00:00 -0400 Panel: Aimee Knight Charles Max Wood Christopher Ferdinandi (Boston) Special Guests: Dan Shappir (Tel Aviv) In this episode, the panel talks with Dan Shappir who is a computer software developer and performance specialist at Wix.com. As Dan states, his job is to make 100 million websites (hosted on the Wix platform) load and execute faster! Past employment includes working for companies, such as: Ericom, Ericom Software, and BackWeb. He studied at Technion Institute of Management and currently lives in Tel Aviv, Israel. The panel talks about web performance API among other things. Check it out! Show Topics: 1:29 – Charles: Let us know who you are and why you’re famous! 1:39 – “Hello!” from Dan Shappir. 2:25 – Charles: You should say that you go to EACH site EVERY day out of the millions of sites out there. 2:53 – Charles: My mom mentioned Wix to me at first. My mom teaches High School Math. 3:16 – Dan: Yes that is our mission statement. That everyone can get a website without the knowledge of how to build a website. 3:52 – Aimee makes her comments. 3:59 – Dan: On our platform we try to offer people flexibility. There are bounds and limits, but people can do their very own thing, though. To make Wix faster because as we add more features and functionality that is our goal. 4:40 – Chuck: Okay, I know how to make X perform a little bit better. You are looking at a platform that controls TONS of sites, how do you even go about that? 4:58 – Dan: It is more difficult then that. We have millions of users leveraging the platform but there are a lot of developers in Wix who are developing the platform. I don’t think anyone at Wix has a total grasp of the complexity of the platform that we built. We have hundreds of frontend people working on our platform. All of them have pieces to the kingdom. We have processes in place with code reviews and whatnot, but there is so much going on. There is a change every 2 minutes, 24/7. We need to make sure progressing instead of regressing. 6:54 – Aimee: I think it was interesting in one of the links you sent over. Because you know when something is getting worse you consider that a bug. 7:15 – Dan: It is more than a bug because if we see regression in performance then that is a problem. I can literally see any part of the organization and say, “stop” if it will 7:57 – Chuck: We are talking about performance, but what does that mean? What measures are there? 8:15: Dan: We are looking at performance can mean different things in different contents. User sites, for example, most important aspect is load time. How quickly the page loads and gets open to the viewer to that specific site. When they click something they want it instantly and no drag time. It does change in different contexts. 9:58 – Chuck: People do talk about load time. People have different definitions of it. 10:12: Dan: Excellent question. When you look at the different sites through Wix. Different people who build sites – load time can mean something else to everybody. It can mean when you see the MAIN text or the MAIN image. If it’s on an ECON site then how soon can they purchase or on a booking site, how long can the person book X product. I heard someone at a conference say that load time is when: HERO TEXT And HERO IMAGE are displayed. 12:14 – Chuck: What is faster React or Vue? 12:21 – NEW HOST: Not sure. It all depends. 12:34 – Dan: We are big into React. We are one of the big React users outside of Facebook. I joined Wix four years ago, and even back then we were rebuilding our framework using React. One of our main modifications is because we wanted to do server-side rendered. 13:27 – Christopher asks Dan a question. 14:16 – Dan: We are in transition in this regard. Before we were totally client-site rendered, and that was the case until middle of last year. Then we deployed... Dan: We are 100% server-side rendered now. Some things we are still using JavaScript. We have another project going on now and it’s fully CSS, and little JavaScript as possible. What you might want to do with that site is... You might get in a few months every Wix site will be visible even if JavaScript is disabled. 16:26 – Aimee adds in her comments and observations to this topic. 16:55 – Dan: We don’t want things displayed incorrectly before it lays out. We hide the content while it’s downloading then make it visible. They lay-outing are done faster, because... 17:44 – Christopher asks Dan a question. 18:04 – Dan: I got into API... Either you are moving forward or are you moving back. AKA – You are either progressing or regressing. Different stages: 1.) Development stage 2.) Pre-Production (automated tools that check the performance with specific use cases) 3.) Check it out! It’s beneficial to use these APIs. 21:11 – Christopher: What is performance APIs? 21:38 – Dan: There is a working group – Todd from Microsoft and others who are exposing the information (that is available in the browser) out into the browser. When the browser downloads a certain source (image, font, etc.) it can measure the various stages of downloading that feature. You have these different sages of downloading this resource. The browser can measure each of these stages and then expose them to you. Basically it’s for the browser to expose this information to you and in a way that is coherent and uniform. It essentially maintains this buffer that puts performance entries sequentially. Dan continues explaining this topic in detail. 25:55 – Dan: You have this internal buffer... 28:45 – Advertisement – Sentry – They support opensource. 29:39 – Christopher: everything you are saying seems that I can use this or that tab right now... Why would I prefer the API to something visual, hypothetically? 30:03 – Dan: Three Different Stages. (See above.) This information is very, very helpful during the developmental stage. Say you got a link from someone... Dan mentions: Performance.mark 34:04 – Aimee: When you were talking about resource-ends. Many people don’t know what this is. Can you spend 2-3 minutes about how you guys are using these? Are there people can add for big bang for their buck? 34:41 – Dan: This might want to be a topic for its own podcast show. Dan gives a definition of what a resource-end means. Go back to fonts as an example. Pre-connect for example, too. 39:03 – Dan: Like I said, it’s a huge topic. You have to exercise some care. Bandwidth is limited. Make sure you aren’t blocking other resources that you do need right now. 40:02 – Aimee: Sounds like a lot of great things to tap into. Another question I have is about bundling. 40:27 – Dan: One of the things that we try to do (given that we are depending on the JavaScript we are downloading) we need to download JavaScript content to the client side. It has been shown often that JS is the most impactful resources that you need to download. You really want to be as smart as possible with that. What is even more challenging is the network protocols are changing. Dan continues to go in-depth about this topic. Dan: What we have found is that you want to strive to bundle resources together. 44:10 – Aimee: Makes sense. 44:15 – Dan continues talking about this topic. 45:23 – Chuck asks two questions. (First question is now and second question is at 51:32.) 2 Questions: 1. You gather information from web performance AI - What system is that? 45:42 – Dan: I am not the expert in that. I will try not to give misleading information. Actually let me phrase it different. There are 3rd party tools that you can use leverage in your website. IF you are building for commercial reasons I highly recommend that you use performance-monitoring solution. I am not going to advertise one because there are tons out there. We ended up rolling out our own infrastructure because our use case is different than most. At a conference I talked with a vendor and we talked about... 51:32 – 2nd Question from Charles to Dan: Now you’ve gathered this information now what to you do? What patterns? What do you look for? And how do you decide to optimize things? 54:23 – Chuck: Back to that question, Dan. How should they react to it and what are they looking for 54:41 – Dan: Three main ways: 1.) Generate alerts 2.) See trends over long period of time 3.) Looking at real-time graphs. Frontend developer pro is that likely being woken up in the middle of the night is lower. We might be looking at the real time graph after we deployed... 57:31 – Advertisement – Get a Coder Job! 58:10 – Picks! Links: JavaScript jQuery React Elixir Elm Vue Wix Window Performance Web Performance Terra Genesis Terra Genesis: Space Colony The One Thing DevChat TV – YouTube GitHub: Off Side HBO: Insecure Wix: Engineering JavaScript Riddle JavaScript Riddles for Fun and for Profit Dan Shappir’s Twitter Dan Shappir’s LinkedIn Dan Shappir’s Crunch Base Dan Shappir’s GitHub Dan Shappir’s Talk through Fluent Dan Shappir’s Medium Dan Shappir’s YouTube Talk: JavaScript riddles for fun and profit Sponsors: Code Badges Kendo UI Sentry Digital Ocean Cache Fly Picks: Aimee: Waking up early! How to Deal with Dirty Side Effects in Your Pure Functional JavaScript Chris: Offside - Toomuchdesign Insecure TV Show Charles: Terraform - Game “The One Thing" Code Badge DevChat on YouTube Dan Wix Engineering JavaScript Riddle Full Article
it JSJ 335: “CanJS 4.0” with Justin Meyer By devchat.tv Published On :: Tue, 16 Oct 2018 06:00:00 -0400 Panel: Aimee Knight Charles Max Wood (DevChat TV) Christopher Ferdinandi (Boston) Joe Eames Special Guests: Justin Meyer In this episode, the panel talks with Justin Meyer who is a co-author of DoneJS, CanJS, jQueryPP, StealJS, and DocumentJS. Justin currently works for Bitovi and is their Director of R&D. He is also a fan of basketball and Michael Jackson. The panel and Justin talk about CanJS in-detail – check it out! Show Topics: 0:58 – We had you on Episode 202. 1:14 – Chuck: Can you tell everyone who you are? 1:20 – Justin tells us his background. 1:50 – Chuck. 1:58 – Justin. 2:06 – Chuck: Can you give us an introduction to what CanJS 4.0? 2:11 – Justin: It is a JavaScript framework and is similar to Vue. It adds a very model layer, and uses Real Time very well. 2:44 – Panelist. 2:49 – Justin. 2:55 – Panelist: What is the current... 3:09 – Justin: Compatibility is very important to us. A lot of the same tools are still available. It has over 80 different repositories. Justin continues to talk about the differences/similarities between the different versions. 4:55 – Panelist: Angular, React, and Vue are dominating, so I have 2 questions. 1.) Where is the core strength of JS and its user base? 2.) What is like to be the CanJS when everyone is talking about the other programs? 5:31 – Justin: We have dealt with this for the past 10 years. Emotionally it’s not great, I wished it was more popular, but our priority is keeping our user-based happy. We’ve had big companies use it. Justin answers the second question. 8:44 – Panelist: You mentioned two things. 9:22 – Aimee: I think everything has trade-offs. I would use something because it was the right tool for the job. I wouldn’t want to make something that was “cool.” I would want to make it super accessible in a network. 10:10 – Justin: That is a great marketing angle. We are trying to remove the worst parts of the program. 10:26 – Now I am intrigued. 10:32 – Justin: You have this mutable state and you aren’t sure. At least for CanJS I don’t see that occurring too often. 10:54 – Aimee. 10:58 – Justin: Deep inheritance is definitely a problem and it can create... 11:13 – Aimee. 11:19 – Justin: We have changed strategies a lot, and I think it’s helped CanJS grow; like 60% since January. We are doing a lot of user studies now. I run Meetups, etc. That being said inheritance schemes aren’t something that people will encounter. This is something that they won’t encounter months down the road. 13:00 – Aimee. 13:05 – Panelist: I would like to dig deeper into state-management. Everyone is doing Flux, talk about that with CanJS. 13:20 – Justin: Yeah. It depends on what kind of user you are talking to. When I talk to new users off the street (people who just graduated, etc.)... If you look at React’s statistics – more than 50% doesn’t use any state management. 16:15 – Panelist: I think it’s interesting that there are people that aren’t “oh my gosh...” 16:43 – Justin: The last coolest thing I’ve done is... 18:02 – Justin continues. 18:16 – Panelist: I kind of have this belief that we as a community turn to frameworks and tools too much. From your perspective when does it make sense to turn to a tool like this or better off working with native... 18:56 – It depends on how complex your app is and our ability to work through those problems. I think that’s a generic answer, but hopefully that helps. I don’t think you really can’t live without. 19:49 – Panelist: I think that’s fair. One thing that I found is that there are many things layered into state-management. Because you mentioned performance, which is something I care about, too. At what point does the extra tooling become too heavy for the user’s experience? Where do you draw the line? 21:11 – Justin: It depends. I don’t know what the parallel is – it’s like a richer developer problem. You have too many users where you can make those fine tuned adjustments. Do whatever is going to deliver the product first and then worry about performance later? I think our things are geared towards performance by default. 22:41 – Panelist: Playing devil’s advocate, though. But isn’t there some danger in kind of suggesting that you focus on performance WHEN it’s a business issue? Maybe there is there a lack of empathy among developers. I worry that advice is hurting us. 23:53 – Justin: No matter what you can build your homepage with Angular weird monstrosity, but then when you get to the point when people are using your product – you can just use native HTML, and native methods and build that one widget and as easy and fast as possible. 24:50 – Panelist: Dealing with complexity. Now we need to do things like bundlers, and such to deal with this issue. I feel like a crotchety old man yelling because it takes forever. 25:38 – Justin: I think it depends on where you are sitting. I think that comes down to the design. If your design has a lot of complex states, then... 26:37 – Panelist: Because you care about performance... 26:54 – Advertisement 27:53 – Justin: I don’t think that the run time of CanJS is going to be a critical performance path for anybody. Is there a responsibility? This is the oldest question. It’s like saying: where do you draw the line that you need to choose success/be elected to fight the battles if you really want to win. You need someone using your product or it doesn’t really matter. Start-ups use our product because they need to get something up and in. I am going to flip this back onto you guys. 30:48 – Panelist: I think that’s fair. 31:00 – Aimee: I have a question. You got into consultancy when do you recommend using CanJS or something else? 31:15 – Justin: I always suggest people using CanJS. 31:53 – Aimee: What do these people do when their contract is over? I have used an older version of Can, and... 32:20 – Justin: Are you on Gitter? Aimee: No, I am not. 32:25 – Justin: We do offer promote job posting to help them find somebody. We try our best to help people in any way we can. 33:05 – Aimee: That’s helpful. Another question. 33:28 – Justin: DoneJS is that. It uses the full kitchen sink. That’s what DoneJS is. 33:50 – Panelist: Let’s talk about CanJS in the mark-up. Do you think it’s better now or worse than 2012? Less space or more space? 34:13 – Justin: It’s probably worse. I think the methodology that we are using: focusing on our users. We get their feedback frequently. We are listening to our users, and I think we are being smarter. 35:16 – Panelist: Is the space getting more welcoming or less? 35:31 – It depends on what framework you are. It’s very hard to compete if you are the exact same thing as... The market is so dense and there are so many ideas, so it’s getting harder and harder. What helps people break-through? Is it the technology or the framework? 36:36 – Panelist: I appreciate the richness of the field, as it exists right now. There aren’t a few things SMELT and ELM 37:10 – Justin: Elm for sure. I don’t have a lot of experience with SMELT. 37:23 – Panelist continues the talk. 37:54 – Chuck. 38:00 – Justin: I think it spreads by word-of-mouth. I used to think it was “technology” or... all that really matters is “can you deliver” and the person have a good experience. Usability is the most important to me. We will see how this turns out. I will be either right or wrong. 39:18 – Panelist: Can we talk about the long-term future of Can JS? 39:28 – Justin: We are connecting to our user-base and making them happy. If I had it my way (which I don’t anymore) I think JSX is the best template language. We have been building integrations between JSX and... I am putting out proposals where most people don’t like them. Justin continues this conversation. 44:24 – Picks! 44:28 - Advertisement Links: JavaScript jQuery React Elixir Elm Vue Polyfill.io Dinero.js Vanilla JS Toolkit CanJS’ Website CanJS’ GitHub CanJS’ Twitter JSX JSX- NPM Justin Meyer’s GitHub Justin Meyer’s Twitter Past Episode with Justin Meyer Sponsors: Kendo UI Sentry Cache Fly Get a Coder Job Picks: Aimee Taking a walk for creativity https://ohshitgit.com Chris PolyFill.io Dinero.js https://vanillajstoolkit.com/ Joe Pitch Meeting Solo Charles Phoenix Framework The Queens Poisoner A View From The Top Justin The Killing of H2Push Browser Contributor Days JSJ Episode 326 with Tom Dale Full Article
it JSJ 336: “The Origin of ESLint” with Nicholas Zakas By devchat.tv Published On :: Tue, 23 Oct 2018 06:00:00 -0400 Panel: Aimee Knight Charles Max Wood (DevChat TV) Christopher Ferdinandi (Boston) Cory House (Kansas City) Joe Eames Special Guests: Nicholas Zakas In this episode, the panel talks with Nicholas Zakas who writes on his site, Human Who Codes. He is the creator of ESLint, also the author of several books, and he blogs, too. He was employed through Box and today he talks about ESLint in full detail! Check it out! Show Topics: 0:05 – Advertisement: KENDO UI 0:37 – Hello! The panel is...(Chuck introduces everyone). 1:04 – Nicholas who are you? 1:17 – Nicholas: Yeah it’s been about 5 years and then you invited me again, but I couldn’t come on to talk about ESLint back then. That’s probably what people know me most for at this point. I created ESLint and I kicked that off and now a great team of people is maintaining it. 1:58 – Chuck: What is it? 2:04 – It’s a Linter for JavaScript. It falls into the same category as JSLint. The purpose of ESLint is to help you find problems with your code. It has grown quite a bit since I’ve created it. It can help with bugs and enforcing style guides and other things. 2:53 – Where did it come from? 2:57 – Guest: The idea popped into my head when I worked at Pop. One of my teammates was working on a bug and at that time we were using... Nothing was working and after investigating someone had written a JavaScript code that was using a native code to make an Ajax request. It wasn’t the best practice for the company at the time. For whatever reason the person was unaware of that. When using that native XML...there was a little bit of trickiness to it because it was a wrapper around the... We used a library to work around those situations and add a line (a Linter) for all JavaScript files. It was a text file and when you tried to render code through the process it would run and run the normal expression and it would fail if any of the...matched. I am not comfortable using normal expressions to write code for this. You could be matching in side of a string and it’s not a good way to be checking code for problems. I wanted to find a better way. 6:04 – Why did you choose to create a product vs. using other options out there? 6:15 – Guest: Both of those weren’t around. JSHint was pretty much the defector tool that everyone was using. My first thought was if JSHint could help with this problem? I went back to look at JSHint and I saw that on their roadmap you could create your own rules, and I thought that’s what we need. Why would I build something new? I didn’t see anything on GitHub and didn’t see the status of that. I wanted to see what the plan was, and they weren’t going to get to it. I said that I really needed this tool and I thought it would be helpful to others, too. 8:04 – My history was only back when it was customizable. 8:13 – Aimee: It’s interesting to see that they are basing it on regular expressions. 8:32 – Guest: Interesting thing at Box was that there was...I am not sure but one of the engineers at Box wrote... 9:03 – Aimee: I was going to ask in your opinion what do you think ES Lint is the standard now? 9:16 – Guest: How easy it is to plug things in. That was always my goal because I wanted the tool not to be boxed in – in anyway. The guest continues to talk about how pluggable ESLint is and the other features of this tool. 13:41 – One thing I like about ESLint is that it can be an educational tool for a team. Did you see that being an educational tool? 14:24 – Guest: How do you start introducing new things to a team that is running at full capacity? That is something that I’ve wondered throughout my career. As a result of that, I found that a new team there were some problems I the code base that were really hard to get resolved, because when one person recognizes it there isn’t a god way to share that information within a team in a non-confrontational way. It’s better to get angry at a tool rather than a person. Guest goes into what this can teach people. 18:07 – Panelist: I am not surprised. Is there a best practice to get a team to start with ESLint? Do you get the whole team in a room and show them the options or take the best guess and turn it on? 18:34 – Guest: The thing I recommend is that first and foremost get ESLint in your system with zero rules on. It starts that mindset into your development process. We can do something to automatically check... Get Syntax checking and you will se improvements on the number of bugs that are getting out of production. I recommend using the default the ESLint configuration. This has all of the things that we have found that are most likely errors and runtime errors vs. syntax errors. You can go through with those and sometimes it is easier to run that check with... Using those ESLint rules will clean up a lot of problems that you didn’t know you had with your code. There are too many problems with those rules. I recommend instead of turning them off then put the severity to warning and not error. That is something we started with in the beginning. We turned on as many rules as we could and it drove people crazy. They didn’t feel like when they were committing to a file why should I be... The idea with the different scenario levels you don’t’ want to turn off rules so people don’t know there is a problem. There can be a rule on so people will know that there is a problem, but... Doing that alone will give you a lot of benefit in using ESLint. How do you decide as a team on the rules that are maybe not for finding errors but for stylistic in error? Do we use four spaces, semi-colons, etc. To figure that out I am a big component on finding a pre-existing style guide and adapting it. Get everyone to agree. There is no right or wrong when it comes to stylistic preferences. It really is just getting everyone to do the same thing. I think it was Crawford that said: Whether you drive on the right side of the left side of the road – it doesn’t matter as long as everyone is dong the same thing. I agree with that and it applies to style guides. It can get heated but for the best thing for the team is stick with a guide and work together. 24:36 – Aimee: I can go through the options to pick one of the style guides out there and then it will automatically create my configuration for me is helpful. Question: If you had to pick 2 or 3 rules that you are super helpful what would they be? 25:30 – Guest: To touch briefly on indentation. Whether you like four spaces or whether you are wild and like tabs, I think the indent rule is very helpful. Just for wiping out and eliminating that discussion through your team. Have your editor setup however they want but on the pre-hook... But my favorite rules I tend to lean towards the ones that saved me. The Guest goes through his favorite rules with ESLint. Check it out! 26:51 – Guest mentions his second favorite rule, here! 28:24 – Guest mentions his third favorite rule, here! 29:03 – Guest mentions the rule that makes him giggle a lot, here! 30:07 – Advertisement – Sentry! 31:22 – What is your take on running Fix? Does it make sense to run Fix? 32:00 – Guest: It depends and the idea behind Fix is the idea of doing a one time (at the start) fix everything that it can find wrong b/c I don’t want to do it by hand. It morphed into a more of a tool that people are using all the time. I too have mixed feelings about it. I think the greatest value you get out of Fix is that when you first install it or when you enable a new rule. I think in those situations you get a lot of value out of Fix. I think that when people were getting aggressive with their code styles it took us down a path where we... As a pre-commit hook it could be to fix things and part of the built system you wouldn’t want... People are probably wondering: Why doesn’t ESLint doesn’t fix all the time? It can be a team decision: do you want to run Fix at the point that the developer is writing the code, do you want to use Fix as running it as a build when you are bundling? It really seems more of a personal preference. I am on the fence about it. Even though I am leaning more towards... 35:16 – Do you run Premier? 35:20 – Guest: No I don’t. I don’t have anything against Premier but I think Prettier uses a very interesting space. 37:50 – Chuck: What is next for ESLint and what is next for you? 37:55 – Guest: Well, to be honest I am not sure what is next for ESLint. I haven’t been involved with keeping it maintained for the last few years. I do help out with feedback with decisions. But in general the ESLint the direction is that let’s add tings that help people avoid language hazards and make sure that ESLint is still pluggable. Lastly, that we will be there to help people and the community. There is this virtuosic cycle and tools like Babble and then tools like ESLint introducing rules adapting new rules and features better. For myself, and the future, I haven’t been involved with ESLint because I am focusing on my health. I was diagnosed with Lyme Disease and it meant that I needed to focus on my health. That’s why, too, I wasn’t able to join a few years ago. I am doing better but I am a few years away for working fulltime and writing books and blogging, again. The trajectory is upward. I want to stress that you need to take care of yourself. There is interesting stuff that we are doing and I love it, but make sure you take care of yourself! If you don’t have your health then nothing will really matter. I want to encourage you all to take care of yourselves better. This industry can take a toll on your body b/c it is high-stressed. If you are stressed your immune system will shut down. For a lot of us we are working too much and there isn’t an off-switch. I would like to encourage people to examine their life and their time. When you take time to turn off your analytic brain, and work on your creative brain then the pathways will connect better. Please save your money! Lyme disease is spread through tick bites. 44:30 – Aimee: Thank you for sharing that! 44:38 – Chuck: It’s encouraging to me that you are still trying to come back even after this disease. I think we take things for granted sometimes. You can’t always count on things going the way you want it to go. 45:19 – Guest: What happened to me was I left work and one Friday afternoon I had a normal weekend. My health was on the decline, and I rested all weekend. And Monday I couldn’t get out of bed. That started this whole period where I stopped leaving the house completely. That’s how quickly things can change for you. I harp on people a lot to save their money. If I didn’t have savings there would be a very different end to my story. I want to encourage people to save. 46:33 – Chuck: I think on that note let’s go to picks. Where can people find you? 46:45 – Guest: My blog is Human Who Codes. 47:10 – Chuck: Anything people can do to help you? Check out his books you won’t regret it! 47:33 – Guest: Buying books is always helpful. I would say that if you can spend some time contributing to ESLint that is always a great help. Anything you can do to help them will help me. I want to make sure that those folks are happy, healthy and productive. For me, personally, I love when people Tweet at me and say HI! I love hearing other people’s stories of how they have overcome past diseases or illnesses. If you want to send monetary gifts – donate to a wonderful organization that helps children with Lyme disease. I would encourage you to support if you feel inclined. 50:49 – Chuck: We appreciate it, and I appreciate you being so open about your personal story. 51:11 – Advertisement – eBook: Get a coder job! Links: JavaScript jQuery React Elixir Elm Vue GitHub – Prettier GitHub – Premier Lyme Light Foundation Inclusive Components ESLint – Disallow Specific Imports State of JS Learn JavaScript Book: Total Recall Goodbye Redux YouTube Channel – Sideways Human Who Codes – Nicholas Zakas Nicholas’ Books Nicholas’ Twitter Nicholas’ GitHub Nicholas’ LinkedIn Sponsors: Kendo UI Sentry Cache Fly Get a Coder Job Picks: Aimee Technical debt Professional JavaScript for Web Developers Chris Inclusive Components Blog CSS Cascade JS Jabber - code Cory No Restricted Imports State of JS Total Recall Charles My JavaScript Story Joe Thought bubbles... Goodbye Redux Sideways Channel Nicholas The Brain that Changes Its Self Ghost Boy Tip - Turn off your Wi-Fi before Bed Full Article
it JSJ 337: Microstates.js – Composable State Primitives for JavaScript with Charles Lowell & Taras Mankovski By devchat.tv Published On :: Tue, 30 Oct 2018 06:00:00 -0400 Panel: Aimee Knight Charles Max Wood Joe Eames AJ O’Neil Chris Ferdinandi Special Guests: Charles Lowell (New Mexico) & Taras Mankovski (Toronto) In this episode, the panel talks with two special guests Charles and Taras. Charles Lowell is a principle engineer at Frontside, and he loves to code. Taras works with Charles and joined Frontside, because of Charles’ love for coding. There are great personalities at Frontside, which are quite diverse. Check out this episode to hear about microstates, microstates with react, Redux, and much more! Show Topics: 1:20 – Chuck: Let’s talk about microstates – what is that? 1:32 – Guest: My mind is focused on the how and not the what. I will zoom my mind out and let’s talk about the purposes of microstates. It means a few things. 1.) It’s going to work no matter what framework you are using. 2.) You shouldn’t have to be constantly reinventing the wheel. React Roundup – I talked about it there at this conference. Finally, it really needs to feel JavaScript. We didn’t want you to feel like you weren’t using JavaScript. It uses computer properties off of those models. It doesn’t feel like there is anything special that you are doing. There are just a few simple rules. You can’t mutate the state in place. If you work with JavaScript you can use it very easily. Is that a high-level view? 7:13 – Panel: There are a lot of pieces. If I spoke on a few specific things I would say that it enables programming with state machines. 7:42 – Panel: We wanted it to fell like JavaScript – that’s what I heard. 7:49 – Aimee: I heard that, too. 7:59 – Guest. 8:15 – Aimee: Redux feels like JavaScript to me. 8:25 – Guest: It’s actually – a tool – that it feels natural so it’s not contrived. It’s all JavaScript. 8:49 – Panel. 9:28 – Guest: Idiomatic Ember for example. Idiomatic in the sense that it gives you object for you to work with, which are simple objects. 10:12 – Guest: You have your reducers and your...we could do those things but ultimately it’s powerful – and not action names – we use method names; the name of the method. 11:20 – Panel: I was digging through docs, and it feels like NORMAL JavaScript. It doesn’t seem like it’s tied to a certain framework or library platform? 11:45 – Guest: Yes, we felt a lot of time designing the interfaces the API and the implementation. We wanted it to feel natural but a tool that people reach for. (Guest continues to talk about WHY they created microstates.) Guest: We wanted to scale very well what you need when your needs to change. 13:39 – Chuck: I have a lot of friends who get into React and then they put in Redux then they realize they have to do a lot of work – and that makes sense to do less is more. 14:17 – Guest: To define these microstates and build them up incrementally...building smaller microstates out of larger ones. Guest continued: Will we be able to people can distribute React components a sweet array of components ready for me to use – would I be able to do the same for a small piece of state? We call them state machines, but ultimately we have some state that is driving it. Would we be able to distribute and share? 16:15 – Panel: I understand that this is tiny – but why wouldn’t I just use the native features in specific the immutability component to it? 16:42 – Guest: I’m glad you asked that question. We wanted to answer the question... Guest: With microstates you can have strict control and it gives you the benefit of doing sophisticated things very easily. 18:33 – Guest: You mentioned immutability that’s good that you did. It’s important to capture – and capturing the naturalness of JavaScript. It’s easy to build complex structures – and there is an appeal to that. We are building these graphs and these building up these trees. You brought up immutability – why through it away b/c it’s the essence of being a developer. If you have 3-4-5 levels of nesting you have to de-structure – get to the piece of data – change it – and in your state transition 80% of your code is navigating to the change and only 20% to actually make the change. You don’t have to make that tradeoff. 21:25 – Aimee: The one thing I like about the immutability b/c of the way you test it. 21:45 – Guest: There a few things you can test. 23:01 – Aimee: You did a good job of explaining it. 23:15 – Guest: It makes the things usually hard easy! With immutability you can loose control, and if that happens you can get so confused. You don’t have a way to have a way to navigate to clarity. That’s what this does is make it less confusing. It gives you order and structure. It gives you a very clear path to do things you need to do. If there is a property on your object, and if there is a way to change it... 25:29 – Guest: The only constant is change no matter what framework you are working on. 24:46 – Chuck: We are talking about the benefits and philosophy. What if I have an app – and I realize I need state management – how do I put microstates into my app? It’s using Angular or React – how do I get my data into microstates? 26:35 – Guest: I can tell you what the integration looks like for any framework. You take a type and you passed that type and some value to the create function so what you get is a microstate. (The Guest continues diving into his answer.) 28:18 – Guest: That story is very similar to Redux, basically an event emitter. The state changes on the store. Maybe this is a good time to talk about the stability benefits and the lazy benefits because microstates is both of those things. Stability – if I invoke a transition and the result is unchanged – same microstate – it doesn’t emit an event. It recognizes it internally. It will recognize that it’s the same item. Using that in Ember or Redux you’d have to be doing thousands of actions and doing all that computation, but stability at that level. Also, stability in the sense of a tree. If I change one object then that changes it won’t change an element that it doesn’t need to change. 31:33 – Advertisement: Sentry.io 32:29 – Guest: I want to go back to your question, Chuck. Did we answer it? 32:40 – Chuck: Kind of. 32:50 – Guest. 32:59 – Guest: In Angular for example you can essentially turn a microstate... 33:51 – Guest: You could implement a connect, too. Because the primitive is small – there is no limit. 34:18 – Chuck summarizes their answers into his own words. 34:42 – Guest: If you were using a vanilla React component – this dot – I will bind this. You bind all of these features and then you pass them into your template. You can take it as a property...those are those handlers. They will perform the transition, update and what needs to be updated will happen. 35:55 – Chuck: Data and transitions are 2 separate things but you melded them together to feel like 1 thing. This way it keeps clean and fast. 36:16 – Guest: Every framework helps you in each way. Microstates let’s you do a few things: the quality of your data all in one place and you can share. 38:12 – Guest: He made and integrated Microstates with Redux tools. 38:28 – Guest talks about paths, microstates to trees. 39:22 – Chuck. 39:25 – Panel: When I think about state machines I have been half listening / half going through the docs. When I think of state machines I think about discreet operations like a literal machine. Like a robot of many steps it can step through. We have been talking about frontend frameworks like React - is this applicable to the more traditional systems like mechanical control or is it geared towards Vue layered applications? 40:23 – Guest: Absolutely. We have BIG TEST and it has a Vue component. 41:15 – Guest: when you create a microstate from a type you are creating an object that you can work with. 42:11 – Guest: Joe, I know you have experience with Angular I would love to get your insight. 42:33 – Joe: I feel like I have less experience with RX.js. A lot of what we are talking about and I am a traditionalist, and I would like you to introduce you guys to this topic. From my perspective, where would someone start if they haven’t been doing Flux pattern and I hear this podcast. I think this is a great solution – where do I get started? The official documents? Or is it the right solution to that person? 43:50 – Guest: Draw out the state machine that you want to represent in your Vue. These are the states that this can be in and this is the data that is required to get from one thing to the other. It’s a rope process. The arrow corresponds to the method, and... 44:49 – Panel: It reminds me back in the day of rational rows. 44:56 – Guest: My first job we were using rational rows. 45:22 – Panelist: Think through the state transitions – interesting that you are saying that. What about that I am in the middle – do you stop and think through it or no? 46:06 – Guest: I think it’s a Trojan horse in some ways. I think what’s interesting you start to realize how you implement your state transitions. 48:00 – (Guest continues.) 48:45 – Panel: That’s interesting. Do you have that in the docs to that process of stopping and thinking through your state transitions and putting into the microstate? 49:05 – Guest: I talked about this back in 2016. I outlined that process. When this project was in the Ember community. 49:16 – Guest: The next step for us is to make this information accessible. We’ve been shedding a few topics and saying this is how to use microstates in your project. We need to write up those guides to help them benefit in their applications. 50:00 – Chuck: What’s the future look like? 50:03 – Guest: We are working on performance profiling. Essentially you can hook up microstates to a fire hose. The next thing is settling on a pattern for modeling side effects inside microstates. Microstates are STATE and it’s immutable. 52:12 – Guest: Getting documentation. We have good README but we need traditional docs, too. 52:20 – Chuck: Anything else? 52:28 – Guest: If you need help email us and gives us a shot-out. 53:03 – Chuck: Let’s do some picks! 53:05 – Advertisement for Charles Max Wood’s course! Links: Kendo UI Frontside Redux Microstates Microstates with React Taras Mankovski’s Twitter Taras Mankovski’s GitHub Taras Mankovski’s LinkedIn Taras Mankovski’s Frontside Bio Charles Lowell’s Twitter Charles Lowell’s GitHub Charles Lowell’s Frontside Bio Schedule Once Ruby on Rails Angular Get A Coder Job YouTube Talks Email: cowboyd@frontside.io Working with State Machines Twitch TV BigTest Close Brace REEF The Developer Experience YouTube Video Sponsors: Kendo UI Sentry.io – 2 months free – DEVCHAT/code Get A Coder Job Picks: Aimee ShopTalk Episode 327 Professional JavaScript for Web Developers Technical Debt Stripe Taras Twitch Channel Big Test Frontside Charles Lowell Chalkboards Sargent Art Chalk Chris Close Brace LaCroix Water Chris’s Git Hub Joe The Developer Experience Bait and Switch Good Bye Redux Recording Dungeon and Dragons AJ UtahJS Conf Start with Why The Rust Book VanillaJS w/ Chris Zero to One Charles Podwrench.com - beta getacoderjob.com Full Article
it JSJ 338: It’s Supposed To Hurt, Get Outside of Your Comfort Zone to Master Your Craft with Christopher Buecheler By devchat.tv Published On :: Tue, 06 Nov 2018 06:00:00 -0500 Panel: Aimee Knight AJ O’Neal Aaron Frost Christopher Ferdinandi Special Guests: Christopher Buecheler In this episode, the panel talks with Christopher Buecheler who is an author, blogger, web developer, and founder of CloseBrace. The panel and Christopher talk about stepping outside of your comfort zone. With a technological world that is ever changing, it is important to always be learning within your field. Check out today’s episode to learn more! Show Topics: 0:00 – Advertisement: KENDO UI 1:08 – Aimee: Our guest is Christopher Buecheler – tell us about yourself and what you do. 1:22 – Guest: I run a site and help mid-career developers. I put out a weekly newsletter, too. 2:01 – Aimee: It says that you are a fan of “getting comfortable being uncomfortable”? 2:15 – Guest: I am a self-taught developer, so that means I am scrambling to learn new things all the time. You are often faced with learning new things. When I learned React I was dumped into it. The pain and the difficulty are necessary in order to improve. If you aren’t having that experience then you aren’t learning as much as you could be. 3:26 – Aimee: I borrow lessons that I learned from ice-skating to programming. 3:49 – Guest: I started running a few years ago for better health. It was exhausting and miserable at the start and wondered why I was doing it. Now I run 5 times a week, and there is always a level of being uncomfortable, but now it’s apart of the run. It’s an interesting comparison to coding. It’s this idea of pushing through. 5:01 – Aimee: If you are comfortable you probably aren’t growing that much. In our industry you always have to be learning because things change so much! 5:25 – Guest: Yes, exactly. If you are not careful you can miss opportunities. 6:33 – Panel: You have some ideas about frameworks and libraries – one thing that I am always anxious about is being able to make sense of “what are some new trends that I should pay attention to?” I remember interviewing with someone saying: this mobile thing is just a fad. I remember thinking that she is going to miss this opportunity. I am worried that I am going to be THAT guy. How do you figure out what sort of things you should / shouldn’t pay attention to? 7:47 – Guest: It is a super exhausting thing to keep up with – I agree. For me, a lot of what I pay attention to is the technology that has the backing of a multi-million dollar company then that shows that technology isn’t going anywhere, anytime soon. The other thing I would look at is how ACTIVE is the community around it? 9:15 – Panel: Is there a strategic way to approach this? There is so many different directions that you can grow and push yourself within your career? Do you have any kinds of thoughts/tips on how you want your career to evolve? 10:00 – Guest: I am trying to always communicate better to my newsletter audience. Also, a good approach, too, is what are people hiring for? 11:06 – Aimee: Again, I would say: focus on learning. 11:30 – Panel: And I agree with Aimee – “learn it and learn it well!” 12:01 – Panel: I want to ask Chris – what is CloseBrace? 12:17 – Guest: I founded it in November 2016, and started work on it back in 2013. 14:20 – Panel: It was filled with a bunch of buzz worthy words/title. 14:32 – Guest continues his thoughts/comments on CloseBrace. 16:54 – Panel: How is the growth going? 17:00 – Guest: It is growing very well. I put out a massive, massive tutorial course – I wouldn’t necessarily advice that people do this b/c it can be overwhelming. However, growth this year I have focused on marketing. I haven’t shared numbers or anything but it’s increased 500%, and I am happy about it. 18:05 – Panel: Are you keeping in-house? 18:13 – Guest: I think it would be cool to expand, but now it is in-house. I don’t want to borrow Egg Head’s setup. I would love to cover MORE topics, though. 19:05 – Panel: You are only one person. 19:08 – Guest: If I can get the site creating more revenue than I can hire someone to do video editing, etc. 19:35 – Panel: I think you are overthinking it. 19:45 – Guest. 19:47 – Advertisement – Sentry.io 20:47 – Guest. 21:30 – Aimee: There are SO many resources out there right now. Where do you think you fit into this landscape? 21:44 – The landscape is cluttered, but I feel that I am different b/c of my thoroughness. I don’t always explain line by line, but I do say how and why things work. I think also is my VOICE. Not my radio voice, but the tone and the approach you take with it. 23:25 – Panel: I was trying to copy folks in the beginning of my career. And at some point I realized that I needed to find my own style. It always came down to the reasons WHY I am different rather than the similarities. Like, Chris, you have these quick hits on CloseBrace, but some people might feel like they don’t have the time to get through ALL of your content, because it’s a lot. For me, that’s what I love about your content. 24:46 – Christopher: Yeah, it was intentional. 25:36 – Panel: Good for you. 25:49 – Guest: I am super device agnostic: Android, Mac, PC, etc. I have a lot of people from India that are more Microsoft-base. 26:28 – Aimee: I think Egghead is pretty good about this...do you cover testing at all with these things that you are doing? It’s good to do a “Hello World” but most of these sites don’t get into MORE complex pieces. I think that’s where you can get into trouble. It’s nice to have some boiler point testing, too. 27:18 – Guest answers Aimee’s question. 28:43 – Aimee: We work with a consultancy and I asked them to write tests for the things that we work with. That’s the value of the testing. It’s the code that comes out. 29:10 – Panel: Can you explain this to me. Why do I need to write tests? It’s always working (my code) so why do I have to write a test? 29:39 – Guest: When working with AWS I was writing... 31:01 – Aimee: My biggest thing is that I have seen enough that the people don’t value testing are in a very bad place, and the people that value testing are in a good place. It even comes back to the customers, because the code gets so hard that you end up repeatedly releasing bugs. Customers will stop paying their bills if this happens too often for them. 33:00 – Panel: Aimee / Chris do you have a preferred tool? I have done testing before, but not as much as I should be doing. 33:25 – Aimee: I like JEST and PUPPETEER. 33:58 – Guest: I like JEST, too. 34:20 – Aimee: Let’s go to PICKS! 34:35 – Advertisement – eBook: Get a coder job! Links: JavaScript jQuery React Elixir Elm Vue JEST Puppeteer Podflix Autojump Brutalist Web Design YouTube: Mac Miller Balloon Fiesta DocZ CloseBrace Christopher Buecheler’s Website Christopher Buecheler’s LinkedIn Christopher Buecheler’s GitHub Go Learn Things – Chris Ferdinandi Sponsors: Kendo UI Sentry Cache Fly Get a Coder Job Picks: Aimee Podflix Chris F. AutoJump Brutalist Web Design Mac Miller Tiny Desk Concert AJ Canada Dry with Lemonade Aaron ABQ Ballon Festival Joe Eames DND Recording Channel Christopher Docz South Reach Trilogy Jeff Vandermeer Full Article
it JSJ 339: Node.js In Motion Live Video Course from Manning with PJ Evans By devchat.tv Published On :: Tue, 13 Nov 2018 06:00:00 -0500 Panel: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: PJ Evans In this episode, the panel talks with PJ Evans who is a course developer and an instructor through Manning’s course titled, “Node.js in Motion.” This course is great to learn the fundamentals of Node, which you can check out here! The panel and PJ talk about this course, his background, and current projects that PJ is working on. Check out today’s episode to hear more! Show Topics: 0:00 – Advertisement: KENDO UI 0:36 – Chuck: Welcome and our panel consists of Aimee, AJ, myself, and our special guest is PJ Evans. Tell us about yourself and your video course! NODE JS in Motion is the title of the course. Can you tell us more? 1:29 – PJ: It’s a fantastic course. 2:25 – Chuck: You built this course and there is a lot to talk about. 2:36 – Aimee: Let’s talk about Node and the current state. 2:50 – Chuck: Here’s the latest features, but let’s talk about where do you start with this course? How do you get going with Node? What do people need to know with Node? 3:20 – Aimee. 3:24 – PJ talks about Node and his course! 4:02 – PJ: The biggest headache with Node is the... 4:13 – Chuck. 4:19 – PJ: I am sure a lot of the listeners are familiar with callback hell. 4:50 – Aimee: Let’s talk about the complexities of module support in Node! 5:10 – PJ: It’s a horrible mess. 5:17 – Aimee: Maybe not the tech details but let’s talk about WHAT the problem is? 5:31 – PJ: You are talking about Proper Native ES6 right? They are arguing about how to implement it. 6:11 – PJ: My advice is (if you are a professional) is to stick with the LT6 program. No matter how tensing those new features are! 6:46 – Aimee: It could be outdated but they had to come back and say that there were tons of complexities and we have to figure out how to get there. 7:06 – PJ: They haven’t found an elegant way to do it. 7:15 – Panel: If it’s a standard why talk about it? Seriously – if this is a standard why not implement THE standard? 7:38 – PJ. 8:11 – Panel. 8:17 – Aimee: I would love to talk about this, though! 8:24 – Chuck: I want to talk about the course, please. 8:30 – PJ. 8:54 – Chuck: We will keep an eye on it. 9:05 – PJ. 9:16 – PJ: How is it on the browser-side? 9:33 – Aimee: I don’t want to misspeak. 9:41 – Chuck: I don’t know how complete the forms are. 9:49 – Aimee: I don’t want to misspeak. 9:56 – PJ: I just found the page that I wanted and they are calling it the .MJS or aka the Michael Jackson Script. You can do an import from... Some people think it’s FINE and others think that it’s a TERRIBLE idea. 10:42 – Chuck: “It sounds like it’s a real THRILLER!” 10:52 – Panel. 11:25 – Panel: When you start calling things the Michael Jackson Solution you know things aren’t well. 11:44 – Aimee: Just to clarify for users... 11:57 – Chuck: I want to point us towards the course: NODE.JS. Chuck asks two questions. 12:34 – PJ: The concepts aren’t changing, but the information is changing incredibly fast. The fundamentals are fairly settled. 13:22 – Chuck: What are those things? 13:28 – PJ talks about how he structured the course and he talks about the specifics. 15:33 – Chuck: Most of my backend stuff is done in Ruby. Aimee and AJ do more Java then I do. 15:55 – Panel: I think there is something to understanding how different Node is. I think that Node is a very fast moving train. Node has a safe place and that it’s good for people to know about this space. 16:34 – Aimee: Not everyone learns this way, but for me I like to understand WHY I would want to use Node and not another tool. For me, this talk in the show notes really helped me a lot. That’s the core and the nature of NODE. 17:21 – PJ: Yes, absolutely. Understanding the event loop and that’s aimed more towards people from other back ends. Right from the beginning we go over that detail: Here is how it works, we give them examples, and more. 18:08 – Aimee: You can do more than just create APIs. Aimee mentions Vanilla Node. 18:50 – PJ: To get into frameworks we do a 3-line server. We cover express, and also Sequelize ORM. 19:45 – Advertisement – Sentry.io 20:43 – Chuck: I never used Pug. 20:45 – PJ: PUG used to be called JADE. 20:56 – Aimee. 21:14 – PJ: Express does that for you and I agree with you. I advocate a non-scripted approach, I like when frameworks have a light touch. 22:05 – Aimee: That’s what I liked about it. No offense, Chuck, but for me I didn’t like NOT knowing a lot of what was not happening under the hood. I didn’t want to reinvent the wheel, but I wanted to build at a lower level. 22:40 – PJ: I had the same experience. I wanted to figure out why something wasn’t working. 23:24 – Panel: I had a friend who used Rails...he was cautious to make a switch. This past year he was blown away with how much simpler it was and how fast things were. 24:05 – Aimee: I feel like if you want to learn JavaScript then Node might be easier on the frontend. 24:21 – Chuck: No pun intended. No, but I agree. I like about Rails is that you had well-understood patterns. But the flipside is that you have abstractions... To a certain degree: what did I do wrong? And you didn’t follow the pattern properly. 25:57 – Panel: With Node you get a little bit of both. To me it’s a more simple approach, but the downside is that you have 100’s of 1,000’s of modules that almost identical things. When you start reaching out to NPM that... 26:29 – PJ: Yes the module system of NPM is the best/worst thing about NODE. I don’t have an answer, honestly. There is a great article written that made me turn white. Here is the article! 28:12 – Panel: The same thing happened with the ESLint. That was the very problem that he was describing in the article. 28:50 – PJ: Yep, I put that in the chat there – go ahead and read it! It’s not a problem that’s specific to Node, there are others. It’s the way we do things now. 29:23 – Chuck: We have the NODE Security project. A lot of stuff go into NPM everyday. 29:43 – PJ: We cover those things in the course. 29:53 – Chuck: It’s the reality. Is there a place that people get stuck? 30:00 – PJ answers the question. 30:23 – Aimee. 30:55 – PJ: I am coding very similar to my PHP days. 31:20 – Aimee. 32:02 – PJ: To finish off my point, I hope people don’t loose sight. 32:18 – Aimee. 32:20 – PJ: I am working on a project that has thousands of requests for... 32:53 – Chuck: Anything you WANTED to put into the course, but didn’t have time to? 33:05 – PJ: You can get pretty technical. It’s not an advanced course, and it won’t turn you into a rock star. This is all about confidence building. It’s to understand the fundamentals. It’s a runtime of 6 hours and 40 minutes – you aren’t just watching a video. You have a transcript, too, running off on the side. You can sit there and type it out w/o leaving – so it’s a very interactive course. 34:26 – Chuck: You get people over the hump. What do you think people need to know to be successful with Node? 34:38 – PJ answers the question. PJ: I think it’s a lot of practice and the student to go off and be curious on their own terms. 35:13 – Chuck: You talked about callbacks – I am thinking that one is there to manage the other? 35:31 – PJ answers the question. PJ: You do what works for you – pick your style – do it as long as people can follow you. Take the analogy of building a bridge. 36:53 – Chuck: What are you working on now? 37:00 – PJ: Educational tool called SCHOOL PLANNER launched in Ireland, so teachers can do their lesson planning for the year and being built with Express. Google Classroom and Google Calendar. 39:01 – PJ talks about Pi and 4wd. See links below. 40:09 – Node can be used all over the place! 40:16 - Chuck: Yes, the same can be said for other languages. Yes, Node is in the same space. 40:31 – PJ: Yep! 40:33 – Chuck: If people want to find you online where can they find you? 40:45 – PJ: Twitter! Blog! 41:04 – Picks! 41:05 – Advertisement – eBook: Get a coder job! Links: JavaScript jQuery React Elixir Elm Vue ESLint Node.js Node Security Project Node Security Project - Medium Manning Publications: Course by PJ Evans PUG JSConf EU – talk with Philip Roberts Medium Article by David Gilbertson Hackster.io – Pi Car Pi Moroni Holding a Program in One’s Head PJ Evans’ Twitter Sponsors: Kendo UI Sentry Cache Fly Get a Coder Job Picks: Aimee Paul Graham - Blog AJ Rust Charles Tweet Mash-up The Diabetes Code PJ Music - Max Richter Full Article
it JSJ 340: JavaScript Docker with Julian Fahrer By devchat.tv Published On :: Tue, 20 Nov 2018 06:00:00 -0500 Panel: Aimee Knight AJ O’Neal Joe Eames Charles Max Wood Chris Ferdinandi Special Guest: Julian Fahrer In this episode, the panel talks with Julian Fahrer who is an online educator and software engineer in San Francisco, California (USA). The panel and the guest talk about containers, tooling, Docker, Kubernetes, and more. Check out today’s episode! Show Topics: 0:00 – Advertisement: KENDO UI 1:00 – Chuck: We have today Julian. Julian, please tell us why you are famous? 1:10 – Julian (Guest): I am a software engineer in San Francisco. 1:35 – Chuck: We had you on Elixir Mix before – so here you are! Give us a brief introduction – tell us about the 1:56 – Julian: About 11 hours. You can get it done in about 1 week. It’s a lot to learn. It’s a new paradigm, and I think that’s why people like it. 2:22 – Aimee: How did you dive into Docker? I feel that is like backend space? 2:35 – Julian: I am a full stack engineer and I have been in backend, too. 3:10 – Aimee: I know that someone has been in-charge of our Dev Ops process until the first job I’ve had. When there is a problem in the deployment, I want to unblock myself and not wait for someone else. I think it’s a valuable topic. Why Docker over the other options? 3:58 – Julian: Let’s talk about what Docker is first? 4:12 – Chuck. 4:23 – Julian: Containers are a technology for us to run applications in isolation from each other. Julian talks in-detail about what contains are, what they do, he gives examples, and more. Check it out here! 5:27 – Chuck: Makes sense to me. I think it’s interesting that you are talking about the dependencies. Because of the way the Docker works it’s consistent across all of your applications. 5:59 – Julian. Yes, exactly. Julian talks about containers some more! 6:56 – Chuck asks a question about the container, Docker, and others. 7:03 – Guest: You don’t have to worry about your company’s running operating system, and what you want to use – basically everything runs in the container... 7:30 – Chuck: This short-circuits a lot of it. 7:46 – Guest. 8:00 – Chuck: People will use Docker if your employer mandates it. Is there a learning curve and how do you adapt it within the person’s company? 8:25 – Guest. 8:52 – Aimee: We are using it, too. 8:57 – Guest: Awesome! 9:03 – Aimee: The only downfall is that if you have people who are NOT familiar with it – then it’s a black box for us. We can’t troubleshoot it ourselves. I want to be able to unblock from our end w/o having to go to someone else. That’s my only issue I’ve been having. 10:03 – Guest: I want to see that tooling to be honest. 10:12 – Aimee: Can you talk about how Civil and Docker work together? 10:19 – Guest: Yes! Julian answers the question. 10:56 – Chuck: How much work it is to get a Docker file to get up and running? How much work would it take? 11:18 – Guest: For the development side in about an hour or two – this is if you understand it already. Putting it into production that’s a different story b/c there is a million different ways to do it. It’s hard to put a time on that. 12:24 – Chuck: Let’s assume they have the basic knowledge (they get how server setup takes place) is this something you could figure out in a day or so? 12:47 – Guest: If you have touched Docker then you can do it in a day; if never then not really. 13:02 – Guest: There might be some stones you will fall over. 13:39 – Panel: The part of the learning curve would be... 13:52 – Guest: The idea behind the container is that the container should be disposable. You could throw it away and then start a new one and it’s fresh and clean. Guest continues with his answer. 15:20 – Chuck: I have seen people do this with their database engine. If you need to upgrade your database then they grab their container... 15:55 – Guest: You don’t have to worry about setting it up - its provided in the container and... 16:09 – Chuck asks a question. 16:17 – Guest: For production, I would go with a hosted database like RJS, Azure, or other options. Guest continues. 17:13 – Chuck. 17:20 – Guest: If it dies then you need to... 17:30 – Chuck: We talked about an idea of these containers being something you can hand around in your development team. Chuck asks a question. 17:50 – Guest answers the question. He talks about tooling, containers, web frontend, and more. 18:48 – Guest asks Aimee a question: Are you using Compost? 18:50 – Aimee: I don’t know b/c that is a black box for us. I don’t know much about our Docker setup. 19:00 – Guest to Aimee: Can I ask you some questions? 19:14 – Guest is giving Aimee some hypothetical situations and asks what their process is like. 19:32 – Aimee answers the question. 20:11 – Guest: You have customizing tooling to be able to do x, y, and z. 20:25 – Aimee: They have hit a wall, but it’s frustrating. Our frontend and our backend are different. We are getting 500’s and it’s a black box for us. It’s the way that ops have it setup. I hate having to go to them for them to unblock us. 21:07 – Chuck: I have been hearing about Kubernetes. When will you start to see that it pays off to use it? 21:20 – Guest answers the question. 22:17 – If I have a simple app on a few different machines and front end and job servers I may not need Kubernetes. But if I have a lot of things that it depends on then I will need it? 22:35 – Guest: Yes. 22:40 – Chuck: What are the steps to using it? 22:45 – Guest: Step #1 you install it. The guest goes through the different steps to use Docker. 25:23 – Aimee: It makes sense that your UI and your database don’t live in the same container, but what about your API and your database should that be separate? 25:40 – Guest: Yes they should be separate. 26:09 – Chuck: What has your experience been with Docker – AJ or Chris? 26:17 – Panel: I have used a little bit at work and so far it’s been a black box for me. I like the IDEA of it, but I probably need to take Julian’s course to learn more about it! (Aimee agrees!) One thing I would love (from your perspective, Julian) – if I wanted to get started with this (and say I have not worked with containers before) where would I start? 28:22 – Advertisement – Sentry.io 29:20 – Guest: Good question. You don’t have to be an expert (to use Docker), but you have to be comfortable with the command line, though. 30:17 – Panel: Is there a dummy practice within your course? 30:27 – Julian: We run our own web server and... 30:44 – Panel: I need to check out your course! 31:04 – Guest: It is some time investment, but it’s saved me so much time already so it makes it really worth it. 31:38 – Panel: You are a version behind on Ruby. 31:46 – Guest: ...I just want to make code and not worry about that. 32:04 – Chuck: Updating your server – you would update Ruby and reinstall your gems and hope that they were all up-to-date. Now you don’t have to do it that way anymore. 32:37 – Guest: You know it will behave the same way. 32:48 – Guest: I have some experience with Docker. I understand its value. I guess I will share my frustrations. Not in Docker itself, but the fact that there is a need for Docker... 35:06 – Chuck. 35:12 – Panel: We need someone to come up with... 35:40 – Panel: It’s not standard JavaScript. 35:51 – Chuck: One question: How do you setup multiple stages of Docker? 36:12 – Guest: The recommended way is to have the same Docker file used in the development sate and through to production. So that way it’s the same image. 37:00 – Panel: ...you must do your entire configuration via the environmental variables. 37:29 – Chuck asks a question. 37:36 – Panel: If you are using Heroku or Circle CI...there is a page... 38:11 – Guest and Chuck go back-and-forth. 39:17 – Chuck: Gottcha. 39:18 – Guest. 39:52 – Chuck: I have seen systems that have hyberized things like using Chef Solo and... You do your basic setup then use Chef Solo – that doesn’t’ make sense to me. Have you seen people use this setup before? 40:20 – Guest: I guess I wouldn’t do it. 40:30 – Chuck. 40:36 – Guest: Only reason I would do that is that it works across many different platforms. If it makes your setup easier then go for it. 41:14 – Chuck: Docker Hub – I want to mention that. How robust is that? Can you put private images up there? 41:38 – Guest: You can go TOTALLY nuts with it. You could have private and public images. Also, your own version. Under the hood it’s called container registry. Yeah, you can change images, too. 42:22 – Chuck: Should I use container registry or a CI system to build the Docker system and use it somewhere else? 42:35 – Guest. 43:24 – Chuck: Where can people find your Docker course? 43:30 – Guest: LEARN DOCKER ONLINE! We are restructuring the prices. Make sure to check it out. 44:05 – Chuck: Picks! Where can people find you online? 44:14 – Guest: Twitter! eBook – Rails and Docker! Code Tails IO! Links: JavaScript jQuery React Elixir Elm Vue ESLint Node.js Circle CI Twitter – Circle CI Heroku Surge.sh Kubernetes.io Berg Design Rian Rietveld PickleJS Soft Cover.io Ebook – boilerplate EMx 010 Episode with Julian Fahrer Learn Docker Indie Hacker – Julian Fahrer LinkedIn – Julian Fahrer GitHub – Julian Fahrer Twitter – Julian Fahrer Sponsors: Kendo UI Sentry Cache Fly Picks: AJ Zermatt Resort Heber Area Aimee Surge.sh Chris BergDesign React, WP, and a11y gomakethings.com Joe Docker Videos by Dan Wahlin Rock Climbing/Indoor Rock Climbing Charles Extreme Ownership - Book Playing DND Julian PickleJS Postive Intelligence Full Article
it JSJ 341: Testing in JavaScript with Gil Tayar By devchat.tv Published On :: Tue, 27 Nov 2018 06:00:00 -0500 Panel: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more! Show Topics: 0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous! 1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now? 2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React. The guest talks about Node, React, tools, and more! 4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what? 5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider. The guest gives hypothetical situations that people could face. 6:27 – Aimee. 6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but... 7:22 – Aimee: I totally agree and I could go on and on and on. 7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app. I guess I just need advice in this area, I guess. 8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought. 10:20 – Guest: Don’t mock too much. 10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that. 11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite. 12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff. 13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database. 13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing. 14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition. 14:47 – Guest: Write the code, and then write the tests. The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please? 16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns. 18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection. 19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it. 19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc. 20:09 – Panel. 20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package. 20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested? 21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach. 24:35 – Chuck: When you say integration test what do you mean? 24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time. 26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter? 28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools. 28:39 – Aimee: Yes and no. I think some tools are outdated. 28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the 29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide? 29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser. The guest continues with this topic. 30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them. 31:21 – Aimee: I think they are focusing on mobile more. 31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers. 32:32 – Guest: Selenium is a Swiss knife – it can do everything. 33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about? 33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down? 36:06 – Guest. 38:30 – Chuck: You run tests against production? 38:45 – Guest: Don’t run tests against production...let me clarify! 39:14 – Chuck. 39:21 – Guest: When I am talking about integration testing in the backend... 40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend. I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too. 43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months? 43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this... 44:40 – Guest: Frontend is so visual. 45:12 – Chuck: What are you working on now? 45:16 – Guest: I am working with Applitools and I was impressed with what they were doing. The guest goes into further detail. 46:08 – Guest: Those screenshots are never the same. 48:36 – Panel: It’s...comparing the output to the static site to the... 48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the tests. 50:28 – Guest: I am working mostly (right now) in backend. 50:40 – Chuck: Anything else? Picks! 50:57 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Elixir Node.js Puppeteer Cypress SeleniumHQ Article – Ideas.Ted.Com Book: Never Split the Difference Applitools Guest’s Blog Article about Cypress vs. Selenium Gil’s Twitter Gil’s Medium Gil’s LinkedIn Sponsors: Kendo UI Sentry CacheFly Picks: Aimee How Showing Vulnerability Helps Build a Stronger Team AJ Never Split the Difference Project - TeleBit Charles Monster Hunter International Metabase Gil Cat Zero The Origin of Consciousness in the Breakdown of the Bicameral Mind Full Article