v

JSJ 299: How To Learn JavaScript When You're Not a Developer with Chris Ferdinandi

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:

Picks:

AJ

Aimee

Joe

Chris




v

JSJ 301: CSS Grids: The Future of Frontend Layout with Dave Geddes

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:

Picks:

Charles

Aimee

Cory

AJ

Joe

Aaron

Dave




v

JSJ 302: Evaluating Web Frameworks with Kitson Kelly

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:

Picks:

Charles

Aimee

AJ

Kitson




v

JSJ 303: Test Coverage Tools with Ben Coe, Aaron Abramov, and Issac Schleuter

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:

Picks:

Charles

Aimee

AJ

Corey

Ben

Aaron

Issac




v

JSJ 309: WebAssembly and JavaScript with Ben Titzer

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:

Picks:

Charles

Cory

Aimee

Ben

  • American Politics




v

MJS 057: David Luecke

Panel: Charles Max Wood

Guest: David Luecke

This week on My JavaScript Story, Charles speaks with David Luecke. David currently works for Bullish Ventures, which is a company that builds APIs and mobile web applications for clients using their open source tools. He first got into programming when he got his first computer and started programming using Delphi with Pascal. They also touch on how he first got into JavaScript, Feathers JS, and what he is working on now.

In particular, we dive pretty deep on:

  • David intro
  • How did you first get into programming?
  • Tinkered a lot with electronics as a child
  • Delphi with Pascal
  • Planned on doing an apprenticeship computer programming
  • Went to University and got a CS degree
  • How critical do you think a CS degree is?
  • Having a CS degree helps you to pick up things faster
  • How did you get into JavaScript?
  • Did some website development in the beginning of his career
  • Java
  • Dojo and JavaScript MVC
  • Works a lot with React Native now
  • What products have you worked on that you’re proud of?
  • Feathers JS
  • How did you come around to creating this?
  • In-server architecture idea at university
  • What are you working on now?
  • mySam
  • And much, much more!

Links:

Picks

Charles

David




v

JSJ 311: Securing Express Apps with Helmet.js with Evan Hahn

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:

Picks:

Charles

Evan




v

JSJ 313: Light Functional JavaScript with Kyle Simpson

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:

Picks:

Aimee

AJ

Joe

Kyle




v

JSJ 314: Visual Studio Code and the VS Code Azure Extension with Matt Hernandez and Amanda Silver LIVE at Microsoft Build

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:

Picks:

Charles

Matt

Amanda




v

JSJ 316: Visual Studio Code with Rachel MacFarlane and Matt Bierner LIVE at Microsoft Build

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:

Sponsors

Picks:

Charles

Rachel

Matt




v

JSJ 318: Cloud-Hosted DevOps with Ori Zohar and Gopinath Chigakkagari LIVE at Microsoft Build

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:

Sponsors

Picks:

Charles

Ori

  • Fitbit
  • Pacific Northwest Hiking

Gopinath

  • Seattle, WA




v

JSJ 320: Error Tracking and Troubleshooting Workflows with David Cramer LIVE at Microsoft Build

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:

Sponsors

Picks:

Charles

  • Socks as Swag

David




v

JSJ 322: Building SharePoint Extensions with JavaScript with Vesa Juvonen LIVE at Microsoft Build

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:

Links:

Sponsors

Picks:

Charles

Vesa




v

JSJ 323: "Building a JavaScript platform that gives you the power to build your own CDN" with Kurt Mackey

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:

Sponsors

Picks:

Charles

AJ

Kurt




v

JSJ 325: Practical functional programming in JavaScript and languages like Elm with Jeremy Fairbank

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:

Sponsors

Picks:

Aimee

AJ

Joe

Jeremy




v

JSJ 326: Conversation with Ember co-creator Tom Dale on Ember 3.0 and the future of Ember

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:

Sponsors

Picks:

Joe

Aimee

AJ

  • James Veitch

Tom




v

MJS 076: Kevin Griffin

Panel: Charles Max Wood

Guest: Kevin Griffin

This week on My JavaScript Story, Charles speaks with Kevin Griffin. Kevin is one of the hosts of the 2 Frugal Dudes Podcast which helps programmers learn how to be smarter with handling their money. He first got into programming really young when his Dad brought home a computer and he was curious about it so he read books and taught himself basic programming that way. They talk about his first job out of college and how that has impacted him now, the fact that you have to create your own job security, and what kind of frameworks he uses. They also touch on the importance of exposing yourself to new technologies and being open-minded, what he is working on currently, and more!

In particular, we dive pretty deep on:

  • JavaScript Jabber Episode 273
  • Helping programmers handle their money
  • 2 Frugal Dudes Podcast
  • Runs financial peace university at his church
  • Mindset is everything
  • How did you first get into programming?
  • Got started really young when his Dad brought home a computer
  • DOS for Dummies
  • Taught himself very basic coding
  • Really into text adventures as a child – wrote some of his own
  • Taught Logo in Middle school
  • Computer Science degree in college
  • Got into software developer community because he was laid off from first job
  • You have to build your own job security
  • Do you do JavaScript full-time?
  • Doesn’t like to pigeon hole himself into one language
  • C++ and C#
  • Didn’t want to support JavaScript originally
  • Using jQuery, Knockout, Ember, and Backbone
  • Working with Vue and React now
  • The same problems persist now, just with different frameworks
  • Looking at the project and then deciding which tool to use
  • And much, much more!

Links:

Sponsors:

Picks

Charles

Kevin




v

JSJ 329: Promises, Promise.finally(), and Async/await with Valeri Karpov

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:

Sponsors:

Picks:

Charles

Aimee

AJ

Val




v

JSJ 331: “An Overview of JavaScript Testing in 2018” with Vitali Zaidman

Panel:

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:

Sponsors:

Picks:

AJ O’Neal

Joe Eames

Aimee Knight

Chuck

Vitali




v

JSJ 332: “You Learned JavaScript, Now What?” with Chris Heilmann

Panel:

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:

Sponsors:

Picks :

Amiee

AJ

Joe

Charles

Chris




v

MJS 078: Steve Edwards

Panel: Charles Max Wood

Guest: Steve Edwards

This week on My JavaScript Story, Charles speaks with Steve Edwards who is a website developer and lives in Portland, OR. He is a senior developer at an international corporation called, Fluke. Today’s main topic of conversation is Drupal. Check out the episode to hear about this and much more! 

In particular, we dive pretty deep on:

1:05 – Chuck: Welcome! I appreciate your contributions with hooking me up with some people.

2:22 – Started in IT in 1995.

2:38 – Chuck: How did you get into software development?

2:46 – Steve: In high school not much courses on it. Then in college did some programming there. After college, I was supposed to get married. I was thinking finance. Never nailed down what I wanted to do. Called Bank of America in 1991 – called them. He said let me put in touch with someone. One of the things I got to put classes on “how does this system work.” I got into the banking job and realized not for me. Did realize that I do like teaching. Got software support for another bank. My banking software experience got me the job. We did interfaces – data from PC base to main systems like IBM, etc. I dealt with the source. Same time, I was a diehard racket ball player; on the board state organization. Someone organizing a website for group through Front Page. Hey do you want to take this over? Got to know Front Page. It’s painful to think about it. Same time a position opened up. I got PHP books, and created a new website for our racket ball organization. Off-time learning this. At work I used other tools for the job. That’s where I got into programming and developing. I was an analyst and wanted to program. I created a website from nothing in 2004 for a mountain bike shop. Learned a lot about PHB – and learned that I never want to build anything from scratch ever again. 2006 I start looing for a CMS and I got into some evaluations and got into Drupal. Now I got to do fulltime Drupal. Some guys left the company and got to do Drupal, also. There’s a book on basic JavaScript, and haven’t gotten into it. It’s nice because since 2009 I have been working from home. 3-4 years ago I heard about Angular and how it was used in Drupal. Weather.com – they did things with Angular. I started diving into Angular. Then a small project – worked with Travis then we started with our new ideas/projects. Then I went and took some Angular classes, and I was working on my project. I had these questions. They said that this was used for a one-time use. Okay, I had to figure it out. Travis one day asked: What are you doing? I showed him with the calendar and integrated with... Travis asked if I wanted to go to work with him. Then the past few years I have been working with Vue.js.

12:41 – Chuck: In 2006 I got into Ruby on Rails. I got into jQuery and did some backbone and progressed the same way you did. Worked with Angular and Vue. There is a lot going on there. Interesting to see how this has all progressed. At what point did you decide – JavaScript is the focus to some of these projects?

13:42 – Steve: Lightweight functions.

15:25 – Advertisement – Coder Job

16:05 – Chuck: What are you proud of with the work you’ve done?

16:20 – Steve: Article - All the different projects that it looks like for a developer – I have 5 or 6 projects that I want to get to that I haven’t had time to get to.

Steve talks about one of the projects he is working on.

17:55 – Chuck: What are you working on now?

17:59 – Steve: My company, Fluke, we have a cool setup. It has a three-legged system. In that we have all the background data, another for digital assets, and...

Steve: It’s so fast – I am trying to enhance it to make it even faster.

Another thing that I am working on is that we have a scheduling website for the fire department I am apart of. Band-Aids and glue hold it together. I am trying to work with a calendar so it can integrate – take over the data of a cell and put y stuff in there.  It would be efficient so I don’t get all these errors with this old system. It would give me grand control.

20:16 – Steve: I want to get more and more into JavaScript. The one thing that I like about my story is that you did in your spare time. That’s how I got into Google. Multiple years working up late, working with people and different modules. I got good enough (in 2009) and got good enough – it got me into the door.

21:13 – Chuck talks about his course on how to get a job.

Chuck: All you have to do to level-up is to put into the time. Working on open-source project

21:56 – Steve: Learning – find a project you want to do. What is something you want to tackle? What and how can you get it done with your tools? Stack overflow, or Slack questions. We started a new Meetup (last meeting was last month) and people do Vue on a regular basis. Slack room. That’s how I got into...

Personal experience you can help people and find

23:00 – Chuck: People want to level-up for different reasons. Whether you are trying to get better, or learn new things – getting to know people and having these conversations will shape your thinking.

23:33 – Steve: Also, networking.

24:10 – Chuck: I wasn’t happy where I was at and talked to people. Hey – what else is out there?

24:37 – Chuck: Any recommendations?

24:42 – Steve: The amount of courses that are out there, and it can be overwhelming. Find courses when they go on sale. I found some courses that were only $10.00. There is stuff that is free and things that you can pay for. It can be inexpensive.

26:38 – Chuck: I do the same thing. I wait for things to go on sale first. I’ve done that with courses. However you learn it. Some people work through a book and for others that’s not the way. Sometimes I will start with a video course then I get frustrated. It helps, though. There are different ways to do it. Go do it.

27:39 – Steve: There is a lot of good jobs – get your foot in the door as a junior guy. Getting the real-life experience.

28:15 – Chuck: How do people get ahold of you?

28:18 – Steve: Twitter, GitHub, wherever...

28:48 – Picks!

28:53 – Advertisement for Digital Ocean

Links:

Sponsors:

Picks:

Charles

Steve Edwards




v

JSJ 333: “JavaScript 2018: Things You Need to Know, and a Few You Can Skip” with Ethan Brown

Panel:

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:

Sponsors:

Picks:

Aimee

Joe

Charles

Ethan




v

JSJ 337: Microstates.js – Composable State Primitives for JavaScript with Charles Lowell & Taras Mankovski

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:

Sponsors:

Picks:

Aimee

Taras

Charles Lowell

Chris

Joe

AJ

Charles

  • Podwrench.com -  beta
  • getacoderjob.com




v

JSJ 339: Node.js In Motion Live Video Course from Manning with PJ Evans

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:

Sponsors:

Picks:

Aimee

AJ

Charles

PJ




v

JSJ 340: JavaScript Docker with Julian Fahrer

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:

Sponsors:

Picks:

AJ

Aimee

Chris

Joe

Charles

Julian




v

JSJ 341: Testing in JavaScript with Gil Tayar

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:

Sponsors:

Picks:

Aimee

AJ

Charles

Gil




v

JSJ 343: The Power of Progressive Enhancement with Andy Bell

Panel:

  • Charles Max Wood
  • Aimee Knight
  • Chris Ferdinandi
  • AJ O’Neal

Special Guest: Andy Bell

In this episode, the panel talks with Andy Bell who is an independent designer and developer who uses React, Vue, and Node. Today, the panelists and the guest talk about the power of progressive enhancements. Check it out!

Show Topics:

0:00 – Advertisement: KENDO UI

0:34 – Chuck: Hi! Our panel is AJ, Aimee, Chris, myself and my new show is coming out in a few weeks, which is called the DevRev! It helps you with developer’s freedom! I am super excited. Our guest is Andy Bell. Introduce yourself, please.

2:00 – Guest: I am an independent designer and developer out in the U.K.

2:17 – Chuck: You wrote things about Vanilla.js. I am foreshadowing a few things and let’s talk about the power and progressive enhancement.

2:43 – The guest gives us definitions of power and progressive enhancements. He describes how it works.

3:10 – Chuck: I’ve heard that people would turn off JavaScript b/c it was security concern and then your progressive enhancement would make it work w/o JavaScript. I am sure there’s more than that?

3:28 – The guest talks about JavaScript, dependencies, among other things.

4:40 – Chuck: Your post did make that very clear I think. I am thinking I don’t even know where to start with this. Are people using the 6th version? How far back or what are we talking about here?

5:09 – Guest: You can go really far back and make it work w/o CSS.

5:49 – Chris: I am a big advocate of progressive enhancement – the pushback I get these days is that there is a divide; between the broadband era and AOL dialup. Are there compelling reasons why progressive enhancements even matter?

6:48 – Guest.

8:05 – Panel: My family lives out in the boonies. I am aware of 50% of American don’t have fast Internet. People don’t have access to fast browsers but I don’t think they are key metric users.

8:47 – Guest: It totally depends on what you need it for. It doesn’t matter if these people are paying or not.

9:31 – Chris: Assuming I have a commute on the trail and it goes through a spotty section. In a scenario that it’s dependent on the JS...are we talking about 2 different things here?

10:14 – Panelist chimes-in.

10:36 – Chris: I can take advantage of it even if I cannot afford a new machine.

10:55 – Panel: Where would this really matter to you?

11:05 – Chris: I do have a nice new laptop.

11:12 – Chuck: I had to hike up to the hill (near the house) to make a call and the connection was really poor (in OK). It’s not the norm but it can happen.

11:37 – Chris: Or how about the All Trails app when I am on the trail.

11:52 – Guest.

12:40 – Chris: I can remember at the time that the desktop sites it was popular to have...

Chris: Most of those sites were inaccessible to me.

13:17 – Guest.

13:51 – Chuck: First-world countries will have a good connection and it’s not a big deal. If you are thinking though about your customers and where they live? Is that fair? I am thinking that my customers need to be able to access the podcast – what would you suggest? What are the things that you’d make sure is accessible to them.

14:31 – Guest: I like to pick on the minimum viable experience? I think to read the transcript is important than the audio (MP3).

15:47 – Chuck.

15:52 – Guest: It’s a lot easier with Vue b/c you don’t’ have to set aside rendering.

17:13 – AJ: I am thinking: that there is a way to start developing progressively and probably cheaper and easier to the person who is developing. If it saves us a buck and helps then we take action.

17:49 – Guest: It’s much easier if you start that way and if you enhance the feature itself.

18:38 – AJ: Let me ask: what are the situations where I wouldn’t / shouldn’t worry about progressive enhancements?

18:57 – Guest answers the question.

19:42 – AJ: I want people to feel motivated in a place WHERE to start. Something like a blog needs Java for comments.

Hamburger menu is mentioned, too.

20:20 – Guest.

21:05 – Chris: Can we talk about code?

21:16 – Aimee: This is the direction I wanted to go. What do you mean by that – building your applications progressively?

Aimee refers to his blog.

21:44 – Guest.

22:13 – Chuck: I use stock overflow!

22:20 – Guest.

22:24 – Chuck: I mean that’s what Chris uses!

22:33 – Guest (continues).

23:42 – Aimee.

23:54 – Chris.

24:09 – Chris

24:16 – Chris: Andy what do you think about that?

24:22 – Guest: Yes, that’s good.

24:35 – Chris: Where it falls apart is the resistance to progressive enhancements that it means that your approach has to be boring?

25:03 – Guest answers the question.

The guest mentions modern CSS and modern JavaScript are mentioned along with tooling.

25:50 – Chuck: My issue is that when we talk about this (progressive enhancement) lowest common denominator and some user at some level (slow network) and then they can access it. Then the next level (better access) can access it. I start at the bottom and then go up. Then when they say progressive enhancement I get lost. Should I scrap it and then start over or what?

26:57 – Guest: If it’s feasible do it and then set a timeline up.

27:42 – Chuck: You are saying yes do it a layer at a time – but my question is HOW? What parts can I pair back? Are there guidelines to say: do this first and then how to test?

28:18 – Advertisement – Sentry.io

29:20 – Guest: Think about the user flow. What does the user want to do at THIS point? Do you need to work out the actual dependencies?

30:31 – Chuck: Is there a list of those capabilities somewhere? So these users can use it this way and these users can use it that way?

30:50 – Guest answers the question.

31:03 – Guest: You can pick out the big things.

31:30 – Chuck: I am using this feature in the browser...

31:41 – Guest.

31:46 – Chris: I think this differently than you Andy – I’ve stopped caring if a browser supports something new. I am fine using CSS grid and if your browser doesn’t support it then I don’t have a problem with that. I get hung up on, though if this fails can they still get the content? If they have no access to these – what should they be able to do?

Note: “Cutting the Mustard Test” is mentioned.

33:37 – Guest.

33:44 – Chuck: Knowing your users and if it becomes a problem then I will figure it out.

34:00 – Chris: I couldn’t spare the time to make it happen right now b/c I am a one-man shop.

34:20 – Chuck and Chris go back-and-forth.

34:36 –Chris: Check out links below for my product.

34:54 – AJ: A lot of these things are in the name: progressive.

36:20 – Guest.

38:51 – Chris: Say that they haven’t looked at it all before. Do you mind talking about these things and what the heck is a web component?

39:14 – The guest gives us his definition of what a web component is.

40:02 – Chuck: Most recent episode in Angular about web components, but that was a few years ago. See links below for that episode.

40:25 – Aimee.

40:31 – Guest: Yes, it’s a lot like working in Vue and web components. The concepts are very similar.

41:22 – Chris: Can someone please give us an example? A literal slideshow example?

41:45 – Guest answers the question.

45:07 – Chris.

45:12 – Guest: It’s a framework that just happens to use web components and stuff to help.

45:54 – Chuck: Yeah they make it easier (Palmer). Yeah there is a crossover with Palmer team and other teams. I can say that b/c I have talked with people from both teams. Anything else?

46:39 – Chuck: Where do they go to learn more?

46:49 – Guest: Check out the Club! And my Twitter! (See links below.)

47:33 – Chuck: I want to shout-out about DevLifts that has $19 a month to help you with physical goals. Or you can get the premium slot! It’s terrific stuff. Sign-up with DEVCHAT code but there is a limited number of slots and there is a deadline, too. Just try it! They have a podcast, too!

49:16 – Aimee: Yeah, I’m on their podcast soon!

49:30 – Chuck: Picks!

END – Advertisement: CacheFly!

Links:

Sponsors:

Picks:

Aimee

Chris

AJ

Charles

Andy




v

JSJ 344: Inclusive Components with Heydon Pickering

Panel:

  • Charles Max Wood
  • Aimee Knight
  • Chris Ferdinandi
  • Joe Eames

Special Guest: Heydon Pickering

In this episode, the panel talks with Heydon Pickering who is a designer and writer. The panel and the guest talk about his new book, which is centered on the topic of today’s show: inclusive components. Check out Heydon’s Twitter, Website, GitHub, and Mastodon social accounts to learn more about him. To purchase the book – go here!

Show Topics:

0:00 – Advertisement: KENDO UI

0:38 – Chuck: Aimee, Chris, Joe, and myself – we are today’s panel. My show the DevRev is available online to check it out.

1:30 – Guest: Plain ice cream would be frozen milk and that would be terrible. So I am lemon and candy JavaScript!

2:13 – Chuck: We are talking today about...?

2:22 – Chris: He’s talking about “inclusive components” today!

2:41 – Guest: Traveling is very stressful and I wanted something to do on the plane. I’ve done this book, “Inclusive Design Patterns.”

If you don’t want to buy the book you can go to the blog. I have been talking with Smashing Magazine.

5:40 – Panel.

5:47 – Guest: I approached Smashing Magazine initially. They didn’t think there was a market for this content at the time. They were very supportive but we will do it as an eBook so our costs our down. At the time, the editor came back and said that: “it was quite good!” We skimmed it but came back to it now and now the content was more relevant in their eyes. I didn’t want to do the same book but I wanted to do it around “patterns.” Rewriting components is what I do all the time. I use Vanilla JavaScript. Backbone.js is the trendy one.

9:52 – Panel: The hard book did it get published?

10:02 – Guest: We are in the works and it’s all in the final stages right now. It has to go through a different process for the print version.

11:54 – Panel.

11:58 – (Guest continues about the editorial process.)

12:09 – Panel: They probably switched to TFS – it’s Microsoft’s.

12:23 – Guest: There was this argument on Twitter about the different processors.

13:35 – Chris: What are the ways that people are breaking accessibility with their code through JavaScript? 

13:59 – Guest: The whole premise is that there aren’t a ton of different components that we use. Generally, speaking. Most things we do through JavaScript – it’s just different ways of doing this/that, and hiding things. I am discounting things with Node or other stuff. Most of what we are doing, with interactive design, is showing and hiding.

18:37 – Chris: I have some specialty friends where they tell me where I’ve screwed up my code. For example Eric Bailey and Scott O’Hara but, of course, in very kind ways. What are some things that I can make sure that my code is going to work for many different people.

19:18 – Guest: You have accessibility and inclusive design. People think of accessibility as a check-list and that’s okay but there could be problems with this.

26:00 – Panel: That’s a great guideline.

26:05 – Chris: You talked about ARIA roles and it can be confusing. One side is: I don’t know when to use these and the other side is: I don’t know when NOT to use these so I’m going to use them for EVERYTHING! I guess both can be detrimental. What’s your advice on this topic?

27:00 – Guest: Scott is great and I would trust him to the end of the Earth about what he says.

Guest mentions Léonie Watson and her talks about this topic.

29:26 – (Guest continues.)

29:36 – Advertisement – Sentry.io

30:31 – Chris.

30:40 – Guest: There is a lot of pressure, though, right? People wouldn’t blog about this if it wasn’t worthwhile. It doesn’t matter what the style is or what the syntax is.

The guest talks about not throwing ARIA onto everything.

36:34 – Aimee: Is this something that was mentioned in the book: people with disabilities and accessibility.

37:28 – Guest: Yes, of course. I think it’s important to make your interfaces flexible and robust to think and include people with disabilities.

39:00 – Guest mentions larger buttons.

40:52 – Panelists and Guest talk back-and-forth.

42:22 – Chris: It’s an accessibility and inclusivity element. I saw a dropdown menu and worked great on certain devices but not others. I could beat this horse all day long but the whole: what happens of the JavaScript file doesn’t load or just accordion options?

43:50 – Guest: It’s the progressive enhancement element.

44:05 – Guest: I think it’s worth noting. I think these things dovetail really nicely.

46:29 – Chris: Did you do a video interview, Aimee, talking about CSS? Is CSS better than JavaScript in some ways I don’t know if this is related or not?

47:03 – Aimee: When I talk about JavaScript vs. CSS...the browser optimizes those.

47:27 – Aimee: But as someone who loves JavaScript...and then some very talented people taught me that you have to find the right tool for the job.

47:29 – Guest: I am the other way around – interesting.

52:50 – Chuck: Picks!

52:55 – Advertisement – Get A Coder Job!

END – Advertisement: CacheFly!

Links:

Sponsors:

Picks:

Joe

Aimee

Chris

Charles

Heydon




v

JSJ 345: Azure Devops with Donovan Brown LIVE at Microsoft Ignite

Panel:

Charles Max Woods

Special Guests: Donovan Brown

In this episode, the Charles speaks with Donovan Brown. He is a principal DevOps Manager with Microsoft with a background in application development. He also runs one of the nation’s fastest growing online registration sites for motorsports events DLBRACING.com. When he is not writing software, he races cars for fun. Listen to today’s episode where Chuck and Donovan talk about DevOps, Azure, Python, Angular, React, Vue, and much, much more!

Show Topics:

1:41 – Chuck: The philosophies around DevOps. Just to give you an idea, I have been thinking about what I want to do with the podcasts. Freedom to work on what we want or freedom to work where we want, etc. Then that goes into things we don’t want to do, like fix bugs, etc. How does Microsoft DevOps to choose what they want to do?

2:37 – Guest: We want to automate as much as we can so the developer has less work. As a developer I want to commit code, do another task, rinse and repeating.

Minutes and not even hours later then people are tweeting about the next best thing. Do what you want, where you want. Code any language you want.

4:15 – Chuck: What has changed?

4:19 – Guest: The branding changed. The name wasn’t the most favorite among the people. The word “visual” was a concerned. What we have noticed that Azure will let me run my code no matter where I am. If you want to run Python or others it can run in Azure.

People didn’t need all of it. It comes with depositories, project management, and so much more! People could feel clumsy because there is so much stuff. We can streamline that now, and you can turn off that feature so you don’t have a heart attack. Maybe you are using us for some features not all of them – cool.

7:40 – Chuck: With deployments and other things – we don’t talk about the process for development a lot.

8:00 – Guest talks about the things that can help out with that.

Guest: Our process is going to help guide you. We have that all built into the Azure tab feature. They feel and act differently. I tell all the people all the time that it’s brilliant stuff. There are 3 different templates. The templates actually change over the language. You don’t have to do mental math.

9:57 – Chuck: Just talking about the process. Which of these things we work on next when I’ve got a bug, or a ...

10:20 – Guest: The board system works like for example you have a bug. The steps to reproduce that bug, so that there is no question what go into this specific field. Let the anatomy of the feature do it itself!

11:54 – Chuck comments.

12:26 – Chuck: Back to the feature. Creating the user stories is a different process than X.

12:44 – Guest – You have a hierarchy then, right? Also what is really cool is we have case state management. I can click on this and I expect this to happen...

These are actual tasks that I can run.

13:52 – Chuck: Once you have those tests written can you pull those into your CI?

14:00 – Guest: “Manual tests x0.”

Guest dives into the question.

14:47 – I expect my team to write those test cases. The answer to your question is yes and no.

We got so good at it that we found something that didn’t even exist, yet.

16:19 – Guest: As a developer it might be mind

16:29 – Chuck: I fixed this bug 4x, I wished I had CI to help me.

16:46 – Guest: You get a bug, then you fix a code, etc., etc. You don’t know that this original bug just came back. Fix it again. Am I in Groundhog Day?

They are related to each other. You don’t have a unit test to tell you. When you get that very first bug – write a unit test. It will make you quicker at fixing it. A unit test you can write really fast over, and over, again. The test is passing. What do you do? Test it. Write the code to fix that unit test. You can see that how these relate to each other. That’s the beauty in it.

18:33 – Chuck: 90% of the unit tests I write – even 95% of the time they pass. It’s the 5% you would have no idea that it’s related. I can remember broad strokes of the code that I wrote, but 3 months down the road I can’t remember.

19:14 – Guest: If you are in a time crunch – I don’t have time for this unit test.

Guest gives us a hypothetical situation to show how unit tests really can help.

20:25 – Make it muscle memory to unit test. I am a faster developer with the unit tests.

20:45 – Chuck: In the beginning it took forever. Now it’s just how I write software now.

It guides my thought process.

21:06 – Guest: Yes! I agree.

22:00 – Guest: Don’t do the unit tests

22:10 – Chuck: Other place is when you write a new feature,...go through the process. Write unit tests for the things that you’ve touched. Expand your level of comfort.

DevOps – we are talking about processes. Sounds like your DevOps is a flexible tool. Some people are looking for A METHOD. Like a business coach. Does Azure DevOps do that?

23:13 – Guest: Azure DevOps Projects. YoTeam.

Note.js, Java and others are mentioned by the Guest.

25:00 – Code Badges’ Advertisement

25:48 – Chuck: I am curious – 2 test sweets for Angular or React or Vue. How does that work?

26:05 – Guest: So that is Jasmine or Mocha? So it really doesn’t matter. I’m a big fan of Mocha. It tests itself. I install local to my project alone – I can do it on any CI system in the world. YoTeam is not used in your pipeline. Install 2 parts – Yo and Generator – Team. Answer the questions and it’s awesome. I’ve done conferences in New Zealand.

28:37 – Chuck: Why would I go anywhere else?

28:44 – Guest: YoTeam  was the idea of...

28:57 – Check out Guest

29:02 – Guest: I want Donovan in a box. If I weren’t there then the show wouldn’t exist today.

29:40 – Chuck: Asks a question.

29:46 – Guest: 5 different verticals.

Check out this timestamp to see what Donovan says the 5 different verticals are. Pipelines is 1 of the 5.

30:55 – Chuck: Yep – it works on my Mac.

31:04 – Guest: We also have Test Plant and Artifacts.

31:42 – Chuck: Can you resolve that on your developer machine?

31:46 – Guest: Yes, absolutely! There is my private repository and...

33:14 – Guest: *People not included in box.*

33:33 – Guest: It’s people driven. We guide you through the process. The value is the most important part and people is the hardest part, but once on

33:59 – Chuck: I am listening to this show and I want to try this out. I want a demo setup so I can show my boss. How do I show him that it works?

34:27 – Azure.com/devops – that is a great landing page.

How can I get a demo going? You can say here is my account – and they can put a demo into your account. I would not do a demo that this is cool. We start you for free. Create an account. Let the CI be the proof. It’s your job to do this, because it will make you more efficient. You need me to be using these tools.

36:11 – Chuck comments.

36:17 – Guest: Say you are on a team of developers and love GitHub and things that integration is stupid, but how many people would disagree about...

38:02 – The reports prove it for themselves.

38:20 – Chuck: You can get started for free – so when do you have to start paying for it?

38:31 – Guest: Get 4 of your buddies and then need more people it’s $6 a month.

39:33 – Chuck adds in comments. If this is free?

39:43 – Guest goes into the details about plans and such for this tool. 

40:17 – Chuck: How easy it is to migrate away from it?

40:22 – Guest: It’s GITHub.

40:30 – Chuck: People are looing data on their CI.

40:40 – Guest: You can comb that information there over the past 4 years but I don’t know if any system would let you export that history.

41:08 – Chuck: Yeah, you are right.

41:16 – Guest adds more into this topic.

41:25 – Chuck: Yeah it’s all into the machine.

41:38 – Chuck: Good deal.

41:43 – Guest: It’s like a drug. I would never leave it. I was using TFS before Microsoft.

42:08 – Chuck: Other question: continuous deployment.

42:56 – When I say every platform, I mean every platform: mobile devices, AWS, Azure, etc.

Anything you can do from a command line you can do from our build and release system.

PowerShell you don’t have to abandon it.

45:20 – Guest: I can’t remember what that tool is called!

45:33 – Guest: Anything you can do from a command line. Before firewall. Anything you want.

45:52 – Guest: I love my job because I get to help developers.

46:03 – Chuck: What do you think the biggest mistake people are doing?

46:12 – Guest: They are trying to do it all at once. Fix that one little thing.

It’s instant value with no risks whatsoever. Go setup and it takes 15 minutes total. Now that we have this continuous build, now let’s go and deploy it. Don’t dream up what you think your pipeline should look like. Do one thing at a time. What hurts the most that it’s “buggy.” Let’s add that to the pipeline.

It’s in your pipeline today, what hurts the most, and don’t do it all at once.

49:14 – Chuck: I thought you’d say: I don’t have the time.

49:25 – Guest: Say you work on it 15 minutes a day. 3 days in – 45 minutes in you have a CSI system that works forever. Yes I agree because people think they don’t “have the time.”

50:18 – Guest continues this conversation.

How do you not have CI? Just install it – don’t ask. Just do the right thing.

50:40 – Chuck: I free-lanced and setup CI for my team. After a month, getting warned, we had a monitor up on the screen and it was either RED or GREEN. It was basically – hey this hurts and now we know. Either we are going to have pain or not have pain.

51:41 – Guest continues this conversation.

Have pain – we should only have pain once or twice a year.

Rollback.

If you only have it every 6 months, that’s not too bad.

The pain will motivate you.

52:40 – Azure.com/devops.

Azure DevOps’ Twitter

53:22 – Picks!

53:30 – Advertisement – Get a Coder Job

Links:

Sponsors:

Picks:

Charles

Donovan




v

JSJ 346: Azure Pipelines with Ed Thomson LIVE at Microsoft Ignite

Sponsors:

Panel:

Charles Max Wood

Special Guests: Ed Thomson

In this episode, the Charles speaks with Ed Thomson who is a Program Manager at Azure through Microsoft, Developer, and Open Source Maintainer. Ed and Chuck discuss in full detail about Azure DevOps! Check out today’s episode to hear its new features and other exciting news!

Show Topics:

0:59 – Live at Microsoft Ignite

1:03 – Ed: Hi! I am a Program Manager at Azure.

1:28 – Rewind 2 episodes to hear more about Azure DevOps!

1:51 – Ed: One of the moves from Pipelines to DevOps – they could still adopt Pipelines. Now that they are separate services – it’s great.

2:38 – Chuck talks about features he does and doesn’t use.

2:54 – Ed.

3:00 – Chuck: Repos and Pipelines. I am going to dive right in. Let’s talk about Repos. Microsoft just acquired GitHub.

3:18 – Ed: Technically we have not officially acquired GitHub.

3:34 – Chuck: It’s not done. It’s the end of September now.

3:55 – Ed: They will remain the same thing for a while. GitHub is the home for open source. Repos – we use it in Microsoft. Repositories are huge. There are 4,000 engineers working in these repositories. Everyone works in his or her own little area, and you have to work together. You have to do all this engineering to get there. We bit a tool and it basically if you run clone...

Ed continues to talk about this topic. He is talking about One Drive and these repositories.

6:28 – Ed: We aren’t going to be mixing and matching. I used to work through GitHub. It’s exciting to see those people work close to me.

6:54 – Chuck.

6:59 – Ed: It has come a long way.

7:07 – Chuck: Beyond the FSF are we talking about other features or?

7:21 – Ed: We have unique features. We have branch policies. You can require that people do pole request. You have to use pole request and your CI has to pass and things like that. I think there is a lot of richness in our auditing. We have enterprise focus. At its core it still is Git. We can all interoperate.

8:17 – Chuck.

8:37 – Ed: You just can’t set it up with Apache. You have to figure it out.

8:51 – Chuck: The method of pushing and pulling.

9:06 – Chuck: You can try DevOps for free up to 5 users and unlimited private repos. People are interested in this because GitHub makes you pay for that.

9:38 – Ed and Chuck continue to talk.

9:50 – Ed: Pipelines is the most interesting thing we are working on. We have revamped the entire experience. Build and release. It’s easy to get started. We have a visual designer. Super helpful – super straightforward. Releases once your code is built – get it out to production say for example Azure. It’s the important thing to get your code out there.

10:55 – Chuck: How can someone start with this?

11:00 – Ed: Depends on where your repository is. It will look at your code. “Oh, I know what that is, I know how to build that!” Maybe everyone isn’t doing everything with JavaScript. If you are using DotNet then it will know.

12:05 – Chuck: What if I am using both a backend and a frontend?

12:11 – Ed: One repository? That’s when you will have to do a little hand packing on the...

There are different opportunities there. If you have a bash script that does it for you. If not, then you can orchestrate it. Reduce the time it takes. If it’s an open source project; there’s 2 – what are you going to do with the other 8? You’d be surprised – people try to sneak that in there.

13:30 – Chuck: It seems like continuous integration isn’t a whole lot complicated.

13:39 – Ed: I am a simple guy that’s how I do it. You can do advanced stuff, though. The Cake Build system – they are doing some crazy things. We have got Windows, Lennox, and others. Are you building for Raspberries Pies, then okay, do this...

It’s not just running a script.

15:00 – Chuck: People do get pretty complicated if they want. It can get complicated. Who knows?

15:26 – Chuck:  How much work do you have to do to set-up a Pipeline like that?

15:37 – Ed answers the question in detail.

16:03 – Chuck asks a question.

16:12 – Ed: Now this is where it gets contentious. If one fails...

Our default task out of the box...

16:56 – Chuck: If you want 2 steps you can (like me who is crazy).

17:05 – Ed: Yes, I want to see if it failed.

17:17 – Chuck: Dude, writing code is hard. Once you have it built and tested – continuous deployment.

17:33 – Ed: It’s very easy. It’s super straightforward, it doesn’t have to be Azure (although I hope it is!).

Ed continues this conversation.

18:43 – Chuck: And it just pulls it?

18:49 – Ed: Don’t poke holes into your firewall. We do give you a lot of flexibility

19:04 – Chuck: VPN credentials?

19:10 – Ed: Just run the...

19:25 – Chuck comments.

19:36 – Ed: ...Take that Zip...

20:02 – Ed: Once the planets are finely aligned then...it will just pull from it.

20:25 – Chuck: I host my stuff on Digital Ocean.

20:46 – Ed: It’s been awhile since I played with...

20:55 – Chuck.

20:59 – Ed and Chuck go back and forth with different situations and hypothetical situations.

21:10 – Ed: What is Phoenix?

21:20 – Chuck explains it.

21:25 – Ed: Here is what we probably don’t have is a lot of ERLANG support.

22:41 – Advertisement.

23:31 – Chuck: Let’s just say it’s a possibility. We took the strip down node and...

23:49 – Ed: I think it’s going to happen.

23:55 – Ed: Exactly.

24:02 – Chuck: Testing against Azure services. So, it’s one thing to run on my machine but it’s another thing when other things connect nicely with an Azure set-up. Does it connect natively once it’s in the Azure cloud?

24:35 – Ed: It should, but there are so many services, so I don’t want to say that everything is identical. We will say yes with an asterisk.

25:07 – Chuck: With continuous deployment...

25:41 – Ed: As an example: I have a CD Pipeline for my website. Every time I merge into master...

Ed continues this hypothetical situation with full details. Check it out!

27:03 – Chuck: You probably can do just about anything – deploy by Tweet!

27:15 – Ed: You can stop the deployment if people on Twitter start complaining.

27:40 – Chuck: That is awesome! IF it is something you care about – and if it’s worth the time – then why not? If you don’t have to think about it then great. I have mentioned this before: Am I solving interesting problems? What projects do I want to work on? What kinds of contributions do I really want to contribute to open source?

That’s the thing – if you have all these tools that are set-up then your process, how do you work on what, and remove the pain points then you can just write code so people can use! That’s the power of this – because it catches the bug before I have to catch it – then that saves me time.

30:08 – Ed: That’s the dream of computers is that the computers are supposed to make OUR lives easier. IF we can do that and catch those bugs before you catch it then you are saving time. Finding bugs as quickly as possible it avoids downtime and messy deployments.

31:03 – Chuck: Then you can use time for coding style and other things.

I can take mental shortcuts.

31:37 – Ed: The other thing you can do is avoiding security problems. If a static code analysis tool catches an integer overflow then...

32:30 – Chuck adds his comments.

Chuck: You can set your policy to block it or ignore it. Then you are running these tools to run security. There are third-party tools that do security analysis on your code. Do you integrate with those?

33:00 – Ed: Yep. My favorite is WhiteSource. It knows all of the open source and third-party tools. It can scan your code and...

34:05 – Chuck: It works with a lot of languages.

34:14 – Ed.

34:25 – Chuck: A lot of JavaScript developers are getting into mobile development, like Ionic, and others. You have all these systems out there for different stages for writing for mobile. Android, windows Phone, Blackberry...

35:04 – Ed: Let’s throw out Blackberry builds. We will ignore it.

Mac OS dies a fine job. That’s why we have all of those.

35:29 – Chuck: But I want to run my tests, too!

35:36 – Ed: I really like to use App Center. It is ultimately incredible to see all the tests you can run.

36:29 – Chuck: The deployment is different, though, right?

36:40 – Ed: I have a friend who clicks a button in...

Azure DevOps.

37:00 – Chuck: I like to remind people that this isn’t a new product.

37:15 – Ed: Yes, Azure DevOps.

37:24 – Chuck: Any new features that are coming out?

37:27 – Ed: We took a little break, but...

37:47 – Ed: We will pick back up once Ignite is over. We have a timeline on our website when we expect to launch some new features, and some are secret, so keep checking out the website.

39:07 – Chuck: What is the interplay between Azure DevOps and Visual Studio Code? Because they have plugins for freaking everything. I am sure there is something there that...

39:30 – Ed: I am a VI guy and I’m like 90% sure there is something there.

You are an eMac’s guy?

The way I think about it is through Git right out of the box.

Yes, I think there are better things out there for integration. I know we have a lot of great things in Visual Code, because I worked with it.

40:45 – Chuck: Yes, people can look for extensions and see what the capabilities are.

Chuck talks about code editor and tools. 

41:28 – Ed: ... we have been pulling that out as quickly as possible.

We do have IE extensions, I am sure there is something for VS Code – but it’s not where I want to spend my time.

42:02 – Chuck: Yes, sure.

42:07 – Ed: But everyone is different – they won’t work the way that I work. So there’s that.

42:30 – Ed: That Chuck.

42:36 – Chuck: Where do people get news?

42:42 – Ed: Go to here!

42:54 – Chuck: Where do people find you?

43:00 – Ed: Twitter!

43:07 – Chuck: Let’s do Picks!

43:20 – Advertisement – Fresh Books!

Links:

Picks:

Ed




v

JSJ 347: JAMstack with Divya Sasidharan & Phil Hawksworth

Sponsors

Panel

  • AJ O’Neal

  • Chris Ferdinandi

  • Charles Max Wood

Joined by special guest: Phil Hawksworth and Divya Sasidharan

Episode Summary

This episode features special guests Philip Hawksworth and Divya Sasidharan. Phil lives just outside of London and Divya lives in Chicago, and both of them work for Netlify. Divya is also a regular on the Devchat show Views on Vue. The panelists begin by discussing what JAMstack is. JAM stands for JavaScript, API, and Markup. It used to be known as the new name for static sites, but it’s much more than that. Phil talks about how dynamic ‘static’ sites really are. JAMstack sites range from very simple to very complex, Static is actually a misnomer. JAMstack makes making, deploying, and publishing as simple as possible.

The panelists discuss the differences between building your own API and JAMstack and how JavaScript fits into the JAMstack ecosystem. They talk about keys and secrets in APIs and the best way to handle credentials in a static site. There are multiple ways to handle it, but Netlify has some built in solutions. All you have to do is write your logic for what you want your function to do and what packages you want included in it, they do all the rest. Every deployment you make stays there, so you can always roll back to a previous version.

Charles asks about how to convert a website that’s built on a CMS to a static site and some of the tools available on Netlify. They finish by discussing different hangups on migrating platforms for things like Devchat (which is built on WordPress) and the benefits of switching servers.

Links

Picks

AJ O’Neal:

Chris Ferdinandi:

Charles Max Wood:

Phil Hawksworth:

Divya Sasidharan:




v

JSJ 349: Agile Development - The Technical Side with James Shore

Sponsors

Panel

  • AJ O’Neal

  • Aimee Knight

  • Joe Eames

  • Charles Max Wood

Special Guest: James Shore

Episode Summary

James Shore is a developer who specializing in extreme programming, an Agile method. He also used to host a screencast called Let’s Code Test-Driven JavaScript. They begin by discussing the core of Agile development, which James believes is being responsive to customers and business partners in a way that’s sustainable and humane for the programmers involved. It prioritizes individuals and interactions over processes and tools. More can be found in The Agile Manifesto.

James delves into the historical context of the immersion of Agile and how things have changed from the 90’s. Now, the name Agile is everywhere, but the ideals of agile are not as common. There is a tendency to either take Agile buzzwords and apply them to the way it was done long ago, or it’s absolute chaos. James talks about ways to implement Agile in the workplace. He believes that the best way to learn Agile is work with someone who knows Agile, or read a book on it and then apply it. James recommends his book The Art of Agile Development: Pragmatic Guide to Agile Software Development for people who want to started with Agile development. The panelists talk about where people often get stuck with implementing Agile. The hosts talk about their own processes in their company.

They discuss how people involved in the early days of Agile are disappointed in how commercial it has become.They agree that what’s really the most important is the results. If you can respond to a request to change direction in less than two weeks and you don’t have to spend months and months preparing something, and you do that in a way where the people on the team feel like their contributing, then you’re doing Agile. James thinks that the true genius of Agile is in the way the actual work is done rather than in the way your organize the work.

Links

Picks

AJ O’Neal:

Aimee Knight:

Joe Eames:

  • The Ballad of Buster Scruggs on Netflix

Charles Max Wood:

  • Getting up early

  • John Sonmez Kanbanflow video

  • Drip

James Shore:




v

JSJ 350: JavaScript Jabber Celebrates Episode 350!

Sponsors

Panel:

  • Charles Max Wood
  • AJ O’Neal
  • Aimee Knight
  • Aaron Frost
  • Chris Ferdinandi
  • Joe Eames
  • Tim Caswell

Notes:

This episode of JavaScript Jabber has the panelists reminiscing on the past. First, they discuss the projects they’re working on. Tim has joined MagicLeap doing JavaScript and C++. Aaron Frost is one of the founders of HeroDevs. AJ works at Big Squid, a company that takes spreadsheets and turns them into business actions, and is expecting a daughter. Aimee has been exploring developer advocacy, but wants to focus primarily on engineering. She is currently working at MPM. Joe has taken over the CEO position for thinkster.io, a company for learning web development online. Chris switched from being a general web developer specializing in JavaScript and has started blogging daily rather than once a week, and has seen an increase in sales of his vanilla JavaScript educational products. Charles discusses his long term goal for Devchat.tv. He wants to help people feel free in programming, and help people find opportunities though the Devchat.tv through empowering content.

Next, the panelists discuss their favorite episodes. Some of the most highly recommended episodes are

JSJ 124: The Origin of Javascript with Brendan Eich (1:44:07)

JSJ 161: Rust with David Herman (1:05:05)

JSJ 336: “The Origin of ESLint with Nicholas Zakas” (1:08:01)

JSJ 338: It’s Supposed To Hurt, Get Outside of Your Comfort Zone to Master Your Craft with Christopher Buecheler (43:36)

JSJ 218: Ember.js with Yehuda Katz (42:47)

Last, the panelists discuss what they do to unwind. Activities include working out, reading, playing Zelda and Mario Kart, studying other sciences like physics, painting miniatures, and Dungeons and Dragons.

Picks:

Charles Max Wood

Joe Eames

AJ O’Neal

Aimee Knight

Aaron Frost

Chris Ferdinandi

Tim Caswell




v

JSJ 352: Caffeinated Style Sheets: Supporting High Level CSS with JavaScript with Tommy Hodgins

Sponsors

 

Episode Summary  

In this episode of JavaScript Jabber, the panelists talk with Tommy Hodgins who specializes in responsive web design. He starts with explaining to listeners what it means by a responsive web layout and goes on to discuss the techniques in using JavaScript in CSS in depth.

He elaborates on dynamic styling of components, event-driven stylesheet templating, performance and timing characteristics of these techniques and describes different kinds of observers – interception, resize and mutation, and their support for various browsers. He also talks about how to go about enabling certain features by extending CSS, comparison to tools such as the CSS preprocessor and Media Queries, pros and cons of having this approach while citing relevant examples, exciting new features coming up in CSS, ways of testing the methods, caffeinated stylesheets, along with Qaffeine and Deqaf tools.

Links

 

Picks

Joe

Aimee

Chris

Charles

Tommy




v

MJS 095: Misko Hevery

Sponsors

Host: Charles Max Wood

Special Guest: Miško Hevery

Episode Summary

In this episode of My JavaScript Story, Charles hosts Miško Hevery, creator of Angular and Senior Computer Scientist at Google.

Miško was introduced to computers when his father brought a Sinclair ZX Spectrum home for them to play with. When they moved to the United States from Czech Republic, Miško attended Rochester Institute of Technology and studied Computer Engineering. After working for companies such as Adobe, Sun Microsystems, Intel, and Xerox, he joined Google where created the Angular framework. For more on the story of how Miško created AngularJS, listen to the ‘Birth of Angular’ episode on the Adventures in Angular podcast here.

Miško is currently working on Angular Ivy at Google and plans to restart a blog in the future.

Links

 Picks

Miško Hevery:

Charles Max Wood:




v

JSJ 353: Signal R with Brady Gaster LIVE at Microsoft Ignite

Sponsors:

Panel:

Charles Max Wood

Special Guest: Brady Gaster

In this episode, Chuck talks with Brady Gaster about SignalR that is offered through Microsoft. Brady Gaster is a computer software engineer at Microsoft and past employers include Logical Advantage, and Market America, Inc. Check out today’s episode where the two dive deep into SignalR topics.

Links:

Picks:

Brady

Charles




v

JSJ 355: Progressive Web Apps with Aaron Gustafson LIVE at Microsoft Ignite

Sponsors

Panel

  • Charles Max Wood

Joined by special guest: Aaron Gustafson

Episode Summary 

This episode of JavaScript Jabber comes to you live from Microsoft Ignite. Charles Max Wood talks to Aaron Gustafson who has been a Web Developer for more than 20 years and is also the Editor in Chief at “A List Apart”. Aaron gives a brief background on his work in the web community, explains to listeners how web standardization has evolved over time, where Progressive Web Apps (PWAs) come from, where and how can they be installed, differences between them and regular websites and their advantages. They then delve into more technical details about service workers, factors affecting the boot up time of JavaScript apps, best practices and features that are available with PWAs. 

Aaron mentions some resources people can use to learn about PWAs, talks about how every website can benefit from being a PWA, new features being introduced and the PWA vs Electron comparison. In the end, they also talk about life in general, that understanding what people have gone through and empathizing with them is important, as well as not making judgements based on people’s background, gender, race, health issues and so on.

Links

Picks

Aaron Gustafson:

Charles Max Wood:




v

MJS 098: Vitali Zaidman

Sponsors

Host: Charles Max Wood

Guest: Vitali Zaidman

Episode Summary

In this episode of My JavaScript Story, Charles hosts Vitali Zaidman, Technical Lead at WellDone Software Solutions. He is also the author of the popular blog piece: “An Overview of JavaScript Testing in 2019”.

Vitali has been writing code since he was 13 years old. After completing his military service, he attended The Open University of Israel where he took computer science courses. He picked JavaScript not knowing that it was going to be so popular.

He has been working for WellDone Software Solutions since he was a student where he has had the chance to work in many different projects. Vitali feels in order to keep up with technology it is important to work in different projects.

Vitali talks about projects he has worked on that he is proud of, one of which is his library at https://github.com/welldone-software/why-did-you-render

Links

Picks

Vitali Zaidman:

Charles Max Wood:




v

JSJ 357: Event-Stream & Package Vulnerabilities with Richard Feldman and Hillel Wayne

Sponsors

Panel

  • Aaron Frost
  • AJ O’Neal
  • Chris Ferdinandi
  • Joe Eames
  • Aimee Knight
  • Charles Max Wood

Joined by special guests: Hillel Wayne and Richard Feldman

Episode Summary

In this episode of JavaScript Jabber, Hillel Wayne kicks off the podcast by giving a short background about his work, explains the concepts of formal methods and the popular npm package - event-stream, in brief. The panelists then dive into the recent event-stream attack and discuss it at length, focusing on different package managers and their vulnerabilities, as well as the security issues associated with them. They debate on whether paying open source developers for their work, thereby leading to an increase in contribution, would eventually help in improving security or not. They finally talk about what can be done to fix certain dependencies and susceptibilities to prevent further attacks and if there are any solutions that can make things both convenient and secure for users.

Links

Picks

Joe Eames:

Aimee Knight:

Aaron Frost:

Chris Ferdinandi:

Charles Max Wood:

Richard Feldman:

Hillel Wayne:




v

JSJ 358: Pickle.js, Tooling, and Developer Happiness with Anatoliy Zaslavskiy

Sponsors

Panel

  • AJ O’Neal

  • Charles Max Wood

Joined by Special Guest: Anatoliy Zaslavskiy

Summary

Anatoliy Zaslavskiy introduces pickle.js and answers the panels questions about using it. The panel discusses the automated testing culture and employee retention. The panel discusses job satisfaction and why there is so much turn over in development jobs. Charles Max Wood reveals some of the reasons that he left past development jobs and the panel considers how the impact of work environments and projects effect developers. Ways to choose the right job for you and how to better a work situation is discussed. Anatoliy finishes by advocating for junior developers and explaining the value they bring to a company.

Links

Picks

AJ O’Neal

Charles Max Wood

Anatoliy Zaslavskiy

  •  




v

JSJ 359: Productivity with Mani Vaya

Get Mani's 2x Productivity Course

Sponsors

Panel

  • Aaron Frost
  • AJ O’Neal
  • Joe Eames
  • Aimee Knight
  • Charles Max Wood

Joined by special guest: Mani Vaya

Episode Summary

Mani is the founder of a book summary business called www.2000books.com

At 2000 Books, Mani studies the world’s greatest business and personal development books.

Then he takes the most important ideas from each book and presents them in tight, 9- to 15-minute video summaries.

You get the 4-7 most important ideas in a condensed format that's easy to absorb, easy to review, and easy to put into action immediately.

To help people with productivity, Mani created an awesome course called “10x Productivity"

His “10x Productivity" video course contains summaries of the 50 greatest books ever written on time management, productivity, goal setting, systems, execution, strategy and leverage.

"10x Productivity" pack includes summaries of all the NY Times Best Sellers on Productivity & Time Management, such as:

  • The 7 Habits of Highly Effective People by Stephen Covey

  • Getting Things Done by David Allen

  • Deep Work by Cal Newport

  • The Power of Habit by Charles Duhigg

  • The One Thing by Gary Keller

  • Essentialism by Greg McKeown

All together, this collection includes more than 250 strategies, tips, tools & techniques for:

- Becoming more productive

- Getting results rather than being busy, stressed out & frustrated

- Time Management

- Defeating procrastination

- Achieving big goals

- Hacking your brain for high performance

- Identifying the highest leverage points that lead to much faster results

- Creating powerful habits

- Installing execution systems that make goal achievement inevitable

10x Productivity Package contains:

  • Summaries of the 50 greatest books ever written on Productivity & Time Management

  • 250+ greatest ideas, tips and strategies on Time Management & Productivity

  • 10+ Hours of no-fluff solid Video Content

  • PDF Summaries of all 50 books

Since Mani is my friend and fellow mastermind member, I worked with him to get you guys an amazing discount (using discount code “DEVCHAT”) on the 10x Productivity Book Summary Pack which you can find here

Make sure to use the Coupon code “DEVCHAT” to get the discount.

Links

Picks

AJ O’Neal:

  • M. Night Shyamalan’s The Village
  • colophony/pine sap/rosin/flux for electronics work

Aimee Knight:

Charles Max Wood:

Mani Vaya:




v

JSJ 360: Evolutionary Design with James Shore

Sponsors

Panel

  • Aaron Frost
  • AJ O’Neal
  • Joe Eames
  • Aimee Knight
  • Chris Ferdinandi

Joined by special guest: James Shore

Episode Summary

Special guest James Shore returns for another episode of JavaScript Jabber. Today the panel discusses the idea of evolutionary design. Evolutionary design comes from Agile development. It is based on the principles of continuous integration and delivery and test driven development. In short, evolutionary design is designing your code as you go rather than in advance.

The panelists discuss the difficulties of evolutionary design and how to keep the code manageable.  James Shore introduces the three types of design that make up evolutionary design, namely simple design, incremental design, and continuous design. They talk about the differences between evolutionary design and intelligent design and the correlations between evolutionary design increasing in popularity and the usage of Cloud services. They talk about environments that are and are not conducive to evolutionary design and the financial ramifications of utilizing evolutionary design.

The panelists talk about the difficulties of planning what is needed in code and how it could benefit from evolutionary design. James enumerates the steps for implementing evolutionary design, which are upfront design, reflective design, and refactoring . The team ends by discussing the value of frameworks and how they fit with evolutionary design.

Links

Picks

AJ O’Neal:

Aimee Knight:

James Shore:

Aaron Frost:

Joe Eames:

Chronicles of Crime board game




v

JSJ 363: Practical JAMstack and Serverless with Gareth McCumskey

Sponsors

Panel

  • Charles Max Wood
  • Aimee Knight
  • AJ O’Neal
  • Aaron Frost
  • Joe Eames

Joined by Special Guest: Gareth McCumskey

Summary

Gareth McCumskey introduces JAMstack and serverless. He goes into great detail on how it works. Aimee Knight and Aaron Frost voice their concerns about going serverless. Aimee thinks it feels dirty. Aaron has concerns about the code, is it actually easier, what use cases would he use it for, and does it actually save money. Gareth addresses these concerns and the rest of the panel considers the positive and negatives of using JAMstack and serverless. Charles Max Wood asks for specific use cases; Gareth supplies many uses cases and the benefits that each of these cases.

Links

Picks

Charles Max Wood:

  • Join the mailing list
  • Watch out for new podcasts
  • Send me defunct podcasts you love chuck@devchat.tv

Aimee Knight:

AJ O’Neal:

Aaron Frost:

Gareth McCumskey:

Joe Eames:




v

MJS 111: Anatoliy Zaslavskiy

Sponsors

  • Sentry use the code “devchat” for 2 months free on Sentry small plan
  • CacheFly

Host: Charles Max Wood

Joined By Special Guest: Anatoliy Zaslavskiy

Episode Summary

Anatoliy Zaslavskiy has been interested in computers since he was 7 years old, and began his programming career in high school, doing web development in PHP for the online community for his favorite show  Avatar: The Last Airbender. Anatoliy currently works for Hover as a Frontend developer transforming home photos into 3D models to help visualize what the final project will look like.

Anatoliy shares his journey as a developer with bipolar disorder and tells us how he restructured his career with his employer so he can focus on projects that he enjoys working on. This way he performs at his best and both him and Hover can benefit from his talents. Anatoliy and Charles stress the importance for companies to talk to their developers to understand their nature as both parties benefit from open and honest dialogue.

Links

Picks

Anatoliy Zaslavskiy:

Charles Max Wood:




v

JSJ 369: Azure Functions with Colby Tresness LIVE at MIcrosoft BUILD

Sponsors

Panel

  • Charles Max Wood

Joined by Special Guest: Colby Tresness

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with Colby Tresness. Colby is a Program Manager on Azure Functions at Microsoft. Azure functions are the serverless functions on Azure. Colby explains what the Azure functions premium plan entails, then talks about KEDA – Kubernetes-based event-driven autoscaling, a Microsoft and Red Hat partnered open source component to provide event-driven capabilities for any Kubernetes workload. One of the other cool features of serverless functions they talk about is the Azure serverless community library.

Colby and Charles discuss the best way to get started with Azure functions, as well as the non-JavaScript languages it supports.

Links

Picks

Colby Tresness:

Charles Max Wood:




v

JSJ 370: Azure Functions Part II with Jeff Hollan LIVE at Microsoft BUILD

Sponsors

  • Triplebyte offers a $1000 signing bonus

  • Sentry use the code “devchat” for 2 months free on Sentry small plan

  • CacheFly

Panel

Charles Max Wood

Joined by Special Guest: Jeff Hollan

 

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with Jeff Hollan. Jeff is a Sr. Program Manager for the Azure Functions cloud service. Continuing from where Colby Tresness left off in Adventures in Angular 241: Azure Functions with Colby Tresness LIVE at Microsoft BUILD, Jeff defines what “serverless” really means in developer world. Jeff also talks about various scenarios where Azure functions are extremely useful and explains what Durable Functions are.

Jeff and Charles discuss creating and running an Azure function inside a container and the upcoming capabilities of Azure functions they are currently working on.

Links

Picks

Jeff Hollan:

Charles Max Wood:




v

JSJ 371: The Benefits and Challenges of Server-Side Rendering (SSR) with Dan Shappir

Sponsors

Panel

  • Charles Max Wood
  • Joe Eames
  • Christopher Buecheler
  • Aimee Knight
  • AJ O’Neal

Joined by special guest: Dan Shappir

Episode Summary

In this episode of JavaScript Jabber, special guest Dan Shappir, Performance Tech Lead at Wix, kicks off the discussion by defining server-side rendering (SSR) along with giving its historical background, and touches on the differences between server rendering and server-side rendering. He helps listeners understand in detail how SSR is beneficial for the web and takes questions from the panel about how it affects web performance in cases where first-time users and returning users are involved, and how does SSR fare against technologies such as pre-rendering. He then elaborates on the pitfalls and challenges of SSR including managing and declaring variables, memory leaks, performance issues, handling SEO, and more, along with ways to mitigate them. In the end, Dan sheds some light on when should developers use SSR and how should they start working with it.

Links

Follow JavaScript Jabber on Devchat.tv, Facebook and Twitter.

Picks

Christopher Buecheler:

  • Tip - Take some time off once in a while

Aimee Knight:

AJ O’Neal:

  • Fatherhood!

Joe Eames:

Charles Max Wood:

Dan Shappir:




v

JSJ 372: Kubernetes Docker and Devops with Jessica Deen LIVE from Microsoft BUILD

Sponsors

Panel

  • Charles Max Wood

Joined by Special Guest: Jessica Deen

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with The Deen of DevOps aka Jessica Deen. Jessica is a Senior Cloud Advocate at Microsoft. As an advocate she acts a liaison between developer communities and Microsoft to help understand developer pain points and road blocks especially in areas such as Linux, open-source technologies, infrastructure, Kubernetes, containers and DevOps. Jessica explains how to go about setting up a containerized application, Kubernetes and how to use Dockerfiles. Charles and Jessica then talk about how to get started with a Kubernetes cluster and the resources available for developers that don't have any infrastructure. Jessica advises that developers start with Azure DevOps Services and then go to Microsoft Learn Resource.

Charles also encourages listeners to also check out the Views on Vue podcast Azure DevOps with Donovan Brown for further references. Jessica also recommends following people on Twitter and GitHub to find out about solutions and resources.

Links

Follow Adventures in Angular on tv, Facebook and Twitter.

Picks

Jessica Deen:

Charles Max Wood:




v

JSJ 374: CosmosDB with Steve Faulkner LIVE at Microsoft BUILD

Sponsors

Panel

Charles Max Wood

Joined by Special Guest: Steve Faulkner

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with Steve Faulkner. Steve is a Senior Software Developer for Azure Cosmos DB at Microsoft. Cosmos DB is a global distributed, multi-model noSQL database. Steve explains the Cosmos DB service and scenarios it can be used in. They discuss how Cosmos DB interacts with Azure functions and how partition keys work in Cosmos DB.

Listen to the show for more Cosmos DB updates and to find out how Steve he got his twitter handle @southpolesteve.

Links

Picks

Steve Faulkner:




v

JSJ 376: Trix: A Rich Text Editor for Everyday Writing with Javan Makhmali

Sponsors

Panel

  • Aimee Knight

  • Chris Ferdinandi

  • Christopher Beucheler

  • AJ O’Neal

With Special Guest: Javan Makhmali

Episode Summary

Today’s guest is Javan Makhmali, who works for Basecamp and helped develop Trix. Trix is a rich text editor for the web, made purposefully simple for everyday use instead of a full layout tool. Trix is not the same as Tiny MCE, and Javan discusses some of the differences. He talks about the benefits of using Trix over other native browser features for text editing. He talks about how Trix has simplified the work at Basecamp, especially when it came to crossing platforms. Javan talks more about how Trix differs from other text editors like Google Docs and contenteditable, how to tell if Trix is functioning correctly, and how it works with Markdown.

The panel discusses more specific aspects of Trix, such as Exec command. One of the features of Trix is it is able to output consistently in all browsers and uses semantic, clean HTML instead of classnames. Javan talks about how Trix handles getting rid of the extraneous cruft of formatting when things are copy and pasted, the different layers of code, and the undo feature. He talks about whether or not there will be more features added to Trix. The panel discusses who could benefit from using Trix. The show finishes with Javan talking about Basecamp’s decision to make Trix open source and why they code in CoffeeScript. 

Links

Follow DevChat on Facebook and Twitter

Picks

Javan Makhmali:

Chris Ferdinandi:

AJ O’Neal:

Christopher Beucheler: 

Aimee Knight: