y

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:




y

JSJ 377: Bringing Maps and Location Into Your Apps with the ArcGIS API for JavaScript with Rene Rubalcava

Sponsors

Panel

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

With Special Guest: Rene Rubalcava

Episode Summary

Rene is a software developer for ESRI and works in spatial and mapping software. ESRI has been around since 1969 and has seen their work explode since they shifted to providing address and location services. Rene talks about how he thinks about location and mapping when building software around it and things that he has to approach in unique ways. The panel discusses some of their past experiences with location software. Some of the most difficult aspects of this software is changing time zones for data and actually mapping the Earth, since it is not flat nor a perfect sphere. Rene talks about the different models used for mapping the Earth.

Most mapping systems use the same algorithm as Google maps, so Rene talks about some of the specific features of ArcGIS, including the ability to finding a point within a polygon. Rene talks about what routing is, its importance, and how it is being optimized with ArcGIS, such as being able to add private streets into a regular street network.

The panel discusses how the prevalence of smartphones has changed mapping and GPS and some of their concerns with privacy and location mapping. One thing ESRI is very careful about is not storing private information. Rene talks about the kinds of things he has seen people doing with the mapping and location data provided by ArcGIS, including a Smart Mapping feature for developers, mapping planets, indoor routing, and 3D models. 

Links

Follow DevChat on Facebook and Twitter

Picks

Rene Rubalcava:

AJ O’Neal:

Aimee Knight:

Charles Max Wood:




y

JSJ 378: Stencil and Design Systems with Josh Thomas and Mike Hartington

Sponsors

Panel

  • Aimee Knight

  • Chris Ferdinandi

  • Joe Eames

  • AJ O’Neal

  • Charles Max Wood

With Special Guests: Josh Thomas and Mike Hartington

Episode Summary

Today’s guests Josh Thomas and Mike Hartington are developers for Ionic, with Josh working on the open source part of the framework on Ionic. They talk about their new compiler for web components called Stencil. Stencil was originally created out of work they did for Ionic 4 (now available for Vue, React, and Angular) and making Ionic 4 able to compliment all the different frameworks. They talk about their decision to build their own compiler and why they decided to open source it. Now, a lot of companies are looking into using Stencil to build design systems

The panel discusses when design systems should be implemented. Since Ionic is a component library that people can pull from and use themselves, Jeff and Mike talk about how they are using Stencil since they’re not creating a design system.

The panel discusses some of the drawbacks of web components. They discuss whether or not Cordova changes the game at all. One of the big advantages of using Stencil is the code that is delivered to a browser is generated in such a way that a lot of things are handled for you, unlike in other systems.The panelists talk about their thoughts on web components and the benefits of using a component versus creating a widget the old fashioned way. One such benefit of web components is that you can change the internals of how it works without affecting the API. Josh and Mike talk about some of the abilities of Stencil and compare it to other things like Tachyons. There is a short discussion of the line between frameworks and components and the dangers of pre optimization. If you would like to learn more about Stencil, go to stenciljs.com and follow Josh and Mike @Jtoms1 and @mhartington.

Click here to cast your vote NOW for JavaScript Jabber - Best Dev Podcast Award

Links

Follow DevChat on Facebook and Twitter

Picks

Aimee Knight:

AJ O’Neal:

Chris Ferdinandi:

Charles Max Wood:

Joe Eames:

Josh Thomas:

Mike Hartington:




y

MJS 117: The Devchat.tv Mission and Journey with Charles Max Wood

Sponsors

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

Host: Charles Max Wood

Episode Summary

Charles talks about his journey as a podcaster and his mission with Devchat.tv. Devchat.tv  is designed to home podcasts that speak to all developer communities. Charles also plans Devchat.tv to host shows for technologies that are on the verge of a breakthrough and will be a lot more widely available in the near future such as Artificial Intelligence (AI), Internet of Things (IoT), Virtual Reality (VR) and Augmented Reality (AR). There are new shows being added continuously to reach out to new communities, some examples of which are: a Data Science show, a DevOps show and an Open Source show. As a kid, Charles would record his own shows on a tape recorder. He was always interested in technology. While studying Computer Engineering at Brigham Young University, he worked in the University's Operations Center. Upon graduation, he started working for Mozy where he was introduced to podcasts. Listen to the show to find out the rest of Charles' story, some of the lessons and tips he learned throughout his journey and the evolution of the shows on Devchat.tv. If there isn't a show for your community and you would like there one to be, reach out to Charles. Also if there was a podcast about a programming related subject that ended abruptly and you would like it to continue, reach out to Charles. Devchat.tv would like to host these podcasts.

Links

Picks




y

JSJ 379: FindCollabs and Podcasting with Jeff Meyerson

Sponsors

Panel

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

With Special Guest: Jeff Meyerson

Episode Summary

Jeff Meyerson is the host of the Software Engineering daily podcast and has also started a company called FindCollabs, an online platform for finding collaborators and building projects. Jeff started FindCollabs because he believes there are all these amazing tools but people are not combining and collaborating as much as they could, when so much good could be accomplished together. FindCollabs is especially useful for working on side projects. The panelists discuss the problems encountered when you try to collaborate with people over the internet, such as finding people who are facing similar and gauging interest, skill, and availability. Thankfully, FindCollabs has a feature of leaving reviews and rating your partners so that users can accurately gauge other’s skill level. Users can also leave comments about their experience collaborating with others. The only way you can show competence with an interest is to contribute to another project. FindCollabs is also a good place to look for mentors, as well as for Bootcamp graduates or people going through an online coding course. If you are part of an organization, you can create private projects. The company plans to expand this feature to all users in the future.The panelists talk about their past experiences with collaborating with other people.

Jeff talks about his podcast Software Engineering Daily and how it got started and the focus of the podcast. As someone working in technology, it is important to stay current on up and coming technology, and listening to podcasts is an excellent way to do that. Jeff talks about where he thinks podcasting is going, especially for programmers. The panel discusses some of the benefits of listening to programming podcasts. Jeff talks about how he is prepping Software Engineering Daily for the future. He shares the audience size for Software Engineering Daily and some of the statistics for his different channels. Jeff has also released an app for Software Engineering Daily, and he shares some information on how it was written. Finally, Jeff gives advice for people who want to use FindCollabs and some of the next steps after creating a profile.

Click here to cast your vote NOW for JavaScript Jabber - Best Dev Podcast Award

Links

Follow DevChat on Facebook and Twitter

Picks

Aimee Knight:

AJ O’Neal:

Charles Max Wood:

Jeff Meyerson:




y

JSJ 382: Mental Health with Anatoliy Zaslavskiy

Sponsors

  • Sentry– use the code “devchat” for $100 credit 

Panel

  • Charles Max Wood

With Special Guest: Anatoliy Zaslavskiy

Episode Summary

Anatoliy Zaslavsky works for Hover, made framework called Pickle.js, and has been on JavaScript Jabber before. Today Chuck and Anatloliy are talking about the importance of mental health. Anatoliy has Bipolar Disorder, and he talks about what it is and his experience with it and how his manic and depressive episodes have affected him. Thankfully, his employers at Hover have been extremely supportive. Chuck and Anatoliy talk about what people should do when they are suffering from a mental illness so that they can do the things they love again. Some of the best ways of coping with mental health issues are to keep a lifeline out to friends and family, go to a professional therapist, stay on a consistent exercise and sleep pattern, and stay away from substances. They talk about how to support someone that is suffering from a mental illness. 

Anatoliy talks about some of the symptoms and behavioral changes he has during both manic and depressive episodes and how it has affected him in the workplace. Mental health issues are almost always accompanied by changes in behavior, and Chuck and Anatoliy talk about ways to approach a person about their behavior. Anatoliy gives advice on how to work with your employer while you are suffering from a mental illness. For mental illnesses that aren’t as dramatic as Bipolar Disorder, Anatoliy talks about coping mechanisms such as staying away from triggers, knowing what motivates you and communicating it to your employer, and other practices that have helped him. He talks about some of his triggers and how it has affected his work, both for the better and worse.

 Finding out what helps you cope and what triggers you is often trial and error, but it can help to talk to other people in your field who struggle with the same mental health issues. Anatoliy talks about the pros and cons of working from home or in an office when you have a mental illness. They finish by talking about a few other points on mental health and resources for those suffering from a mental illness to get the help they need. 

 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Anatoliy Zaslavskiy:




y

MJS 119: Jeffrey Meyerson

Sponsors

Host: Charles Max Wood

Joined by Special Guest: Jeffrey Meyerson

Episode Summary

Jeffrey Meyerson, founder of FindCollabs and host at Software Engineering Daily joins Charles Max Wood for a discussion about latest trends in developer world, ways of monetizing podcasts and finding ads for podcasts.Jeffrey shares how he started hosts podcasts and how he became a developer.

Jeffrey's journey as a developer started out with his interest through music and poker. They compare advertising through sponsoring a booth in a conference versus advertising through a podcast. Tune in for a fun chat that covers everything from Keto dieting to software buzz words.

Links

Picks

Charles Max Wood

  • #75Hard

Jeffrey Meyerson

  • Owning a Rice Cooker




y

JSJ 385: What Can You Build with JavaScript?

Sponsors

Panel

  • Charles Max Wood

  • Christopher Beucheler

Episode Summary

Today Charles and Christopher discuss what can you do with JavaScript. They talk about the kinds of things they have used JavaScript to build. They discuss non-traditional ways that people might get into JavaScript and what first drew them to the language. They talk about the some of the non-traditional JavaScript options that are worth looking into. Christopher and Charles talk about some of the fascinating things that have been done with JavaScript, such as Amazon Alexa capabilities, virtual reality, and games. They spend some time talking about JavaScript usage in game creation and building AI. They talk about how they’ve seen JavaScript change and progress during their time as developers. They talk about areas besides web that they would be interested in learning more about and what kinds of things they would like to build in that area. They finish by discussing areas that they are excited to see improve and gain new capabilites. 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Christopher Beucheler:




y

JSJ 386: Gatsby.js with Chris Biscardi

Sponsors

  • GitLab | Get 30% off tickets with the promo code: DEVCHATCOMMIT

  • Sentry– use the code “devchat” for $100 credit 

Panel

  • Chris Beucheler

  • AJ O’Neal

  • Aimee Knight

With Special Guest: Chris Biscardi

Episode Summary

Chris is an independent consultant working with open source startups. He taught himself to program and started in open source. He talks about how he got into programming and how he learned to code. One of Chris’ current clients is Gatsby, a static site generator. Chris talks about his work with Gatsby themes, how he got started working with Gatsby, and how you can get started with Gatsby. Chris talks about how Gatsby differs from other static site generators and how difficult it is to use. The panel discusses possible use cases for Gatsby, and agree that if your site is going to get more complex and larger over time, something like Gatsby is what you want to use. Chris talks about what it’s like to migrate to Gatsby from another service. The panel discusses the pros and cons of server-side rendering. Chris talks about building more app-oriented sites with Gatsby and things that you can plug into a Gatsby theme besides a blog. The show concludes with Chris and the panelists agreeing that if you can write it in JavaScript, you can ship it in a Gatsby theme. 

Links

Follow DevChat on Facebook and Twitter

Picks

AJ O’Neal:

Aimee Knight:

Chris Beucheler:

Chris Biscardi:




y

JSJ 387: How to Stay Current in the Tech Field

Sponsors

  • GitLab | Get 30% off tickets with the promo code: DEVCHATCOMMIT

  • Sentry– use the code “devchat” for $100 credit 

  • Views on Vue

Panel

  • Charles Max Wood

  • Joe Eames

Episode Summary

Today Joe and Charles are discussing how to stay current in the tech field. Since looking at all the new technology can be overwhelming, they advise listeners on what to focus on, which will differ depending on your career. Joe brings up that one of the top reasons people choose a job is because it has a technology they want to learn. Joe and Charles discuss trends in the tech world, such as the rise and fall of Rails. They discuss what to do if you’re happy with what you’re doing now but want your career to stay viable. While it is important to continue moving along with technology, they agree that the stuff that’s really important is the stuff that doesn’t change. Charles believes that if you have a solid knowledge on a subject that isn’t necessary current, that is still very valuable. 

Joe and Charles discuss the importance of having a learning plan and the importance of having soft skills in addition to technological know-how. Another important part of staying current is figuring out where you want to end up and making a plan. If you want to work for a specific company, you need to learn the technology they’re using. Joe talks about some of his experiences trying to get a job with a big company and how he was reminded of the importance of the fundamentals. 

They discuss the merits of being a generalist or a specialist in your studies and the best approach once you’ve chosen a technology to learn. Once you’ve learned a technology, it’s important to start building with it. Charles and Joe talk about different ways of learning, such as books, videos, code reading, or tutorials, and the importance of finding a medium that you can understand. They discuss the isolating nature of tutorials and how it is important to have real-world experience with the code. They discuss how to know if you’ve learned a technology well enough to move onto the next thing, and whether the technologies you studies should be career focused or passion based. Charles advises listeners to divide their time as follows: 50% of your learning should be focused on what you’re currently doing at your job, 25% looking towards the future and studying upcoming technology, and 25% on your passion. 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Joe Eames:




y

JSJ 392: The Murky Past and Misty Future of JavaScript with Douglas Crockford

Episode Summary

Douglas is a language architect and helped with the development of JavaScript. He started working with JavaScript in 2000. He talks about his journey with the language, including his initial confusion and struggles, which led him to write his book JavaScript: The Good Parts.

Douglas’ take on JavaScript is unique because he not only talks about what he likes, but what he doesn’t like. Charles and Douglas discuss some of the bad parts of JavaScript, many of which were mistakes because the language was designed and released in too little time. Other mistakes were copied intentionally from other languages because people are emotionally attached to the way things “have always been done”, even if there is a better way.

Doug takes a minimalist approach to programming. They talk about his opinions on pairing back the standard library and bringing in what’s needed. Douglas believes that using every feature of the language in everything you make is going to get you into trouble. Charles and Douglas talk about how to identify what parts are useful and what parts are not.

Douglas delves into some of the issues with the ‘this’ variable. He has experimented with getting rid of ‘this’ and found that it made things easier and programs smaller. More pointers on how to do functional programming can be found in his book How JavaScript Works 

Charles and Douglas talk about how he decided which parts were good and bad. Douglas talks about how automatic semicolon insertion and ++ programming are terrible, and his experiments with getting rid of them. He explains the origin of JS Lint. After all, most of our time is not spent coding, it’s spent debugging and maintaining, so there’s no point in optimizing keystrokes.

Douglas talks about his experience on the ECMAScript development committee and developing JavaScript. He believes that the most important features in ES6 were modules and proper tail calls. They discuss whether or not progression or digression is occurring within JavaScript. Douglas disagrees with all the ‘clutter’ that is being added and the prevalent logical fallacy that if more complexity is added in the language then the program will be simpler. 

Charles asks Douglas about his plans for the future. His current priority is the next language. He talks about the things that JavaScript got right, but does not believe that it should not be the last language. He shares how he thinks that languages should progress. There should be a focus on security, and security should be factored into the language. 

Douglas is working on an implementation for a new language he calls Misty. He talks about where he sees Misty being implemented. He talks about his Frontend Masters course on functional programming and other projects he’s working on. The show concludes with Douglas talking about the importance of teaching history in programming. 

Panelists

  • Charles Max Wood

With special guest: Douglas Crockford

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Charles Max Wood:

Douglas Crockford:




y

JSJ 393: Why You Should Be Using Web Workers with Surma

Episode Summary

Surma is an open web advocate for Google currently working with WebAssembly team. He was invited on the show today to talk about using web workers and how to move work away from the browser’s main thread. His primary platform is bringing multithreading out of the fringes and into the web. 

The panel talks about their past experience with web workers, and many of them found them isolated and difficult to use. Surma believes that web workers should pretty much always be sued because the main thread is an inherently bad place to run your code because it has to do so much. Surma details the differences between web workers, service workers, and worklets and explains what the compositer is. 

The panel discusses what parts should be moved off the main thread and how to move the logic over. Surma notes that the additional cost of using a worker is basically nonexistent, changes almost nothing in your workflow, and takes up only one kilobyte of memory. Therefore, the cost/benefit ratio of using web workers gets very large. They discuss debugging in a web worker and Surma details how debugging is better in web workers. 

Surma wants to see people use workers not because it will make it faster, but because it will make your app more resilient across all devices. Every piece of JavaScript you run could be the straw that breaks the camel’s back. There’s so much to do on the main thread for the browser, especially when it has a weaker processor, that the more stuff you can move away, the better.

The web is tailored for the most powerful phones, but a large portion of the population does not have the most powerful phone available, and moving things over to a web worker will benefit the average phone. Surma talks about his experience using the Nokia 2, on which simple apps run very slow because they are not being frugal with the user’s resources. Moving things to another thread will help phones like this run faster.  

The panel discusses the benefit of using web workers from a business standpoint. The argument is similar to that for accessibility. Though a user may not need that accessibility all the time, they could become in need of it. Making the app run better on low end devices will also increase the target audience, which is helpful is user acquisition is your principle metric for success. 

Surma wants businesses to understand that while this is beneficial for people in countries like India, there is also a very wide spectrum of phone performance in America. He wants to help all of these people and wants companies acknowledge this spectrum and to look at the benefits of using web workers to improve performance.

Panelists

  • Charles Max Wood

  • Christopher Buecheler

  • Aimee Knight

  • AJ O’Neal

With special guest: Surma

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Charles Max Wood:

Surma:

AJ O’Neal:

Christopher Buecheler




y

JSJ 396: Publishing Your Book with Jonathan Lee Martin

Jonathan Lee Martin is an instructor and developer. He got his start in teaching at Big Nerd Ranch doing 1-2 week trainings for mid to senior developers, and then transitioned to 16 week courses for career switchers. He also worked for Digital Crafts for a year, and then wanted to focus on building out his own personal teaching brand. One of his first steps toward building his own brand was to publish his book, Functional Design Patterns for Express.js.The inspiration for Jonathan’s book came from his experience teaching career switchers. He wanted to experiment in the classroom with teaching functional programming in a way that would be very approachable and applicable and dispel some of the magic around backend programming, and that became the template for the book. 

Jonathan loves the minimalist nature of Express.js and talks about its many uses. He believes that it knowing design patterns can take you pretty far in programming, and this view is related to his background in Rails. When he was working in Rails taming huge middleware stacks, he discovered that applying design patterns made builds take less time. He talks about other situations where knowing design patterns has helped. Express.js leans towards object oriented style over functional programming, and so it takes to these patterns well. Express.js has its shortcomings, and that’s where Jonathan’s favorite library Koa comes into play. 

The conversation switches back to Jonathan’s book, which is a good way to start learning these higher level concepts. He purposely made it appealing to mid and senior level programmers, but at the same time it does not require a lot of background knowledge. Jonathan talks about his teaching methods that give people a proper appreciation for the tool. Jonathan talks more about why he likes to use Express.js and chose to use it for his book. He cautions that his book is not a book of monads, but rather about being influenced by the idea of composition over inheritance. He talks about the role of middleware in programming. 

The panel asks about Jonathan’s toolchain and approach to writing books, and he explains how his books are set up to show code. They discuss the different forms required when publishing a book such as epub, MOBI, and PDF. Jonathan found it difficult to distribute his book through Amazon, so he talks about how he built his own server. Charles notes that your method of distributing your book will depend on your goal. If you want to make the most money possible, make your own site. If you want to get it into as many hands as possible, get it on Amazon.

Many of the JavaScript Jabber panelists have had experience publishing books, and Jonathan shares that you can reach out to a publisher after you’ve self-published a book and they can get it distributed. Jonathan believes that If he had gone straight to a publisher, he would have gotten overwhelmed and given up on the book, but the step by step process of self-publishing kept things manageable. The panelists discuss difficulties encountered when publishing and editing books, especially with Markdown. Jonathan compares the perks of self-editing to traditional editing. Though he does not plan to opensource his entire editing pipeline, he may make some parts available. The show concludes with the panelists discussing the clout that comes with being a published author. 

Panelists

  • Charles Max Wood

  • Christopher Buecheler 

  • J.C. Hyatt

With special guest: Jonathan Lee Martin

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Christopher Buecheler:

J.C. Hyatt:

Charles Max Wood:

Jonathan Lee Martin:




y

JSJ 397: Design Systems with Kaelig Deloumeau-Prigent

Kaelig Deloumeau-Prigent is a self taught web developer from west France. He has worked for BBC, The Guardian, and The Financial Times in the UK. He has also worked in the US for SalesForce and currently works for Shopify on their Polaris design system. Shopify has multiple design systems, and Polaris is open source. Today the panel is talking about design systems and developer tooling around design systems. 

To begin, Kaelig explains what a design system is. A design system is all of the cultural practices around design and shipping a product. It includes things like the words, colors, spacing grid system, and typography, plus guidance on how to achieve that in code. The panelists discuss what has made design systems so popular. Design systems have been around for a while, but became popular due to the shift to components, which has been accelerated by the popularity of React. The term design system is also misused by a lot of people, for it is much more than having a Sketch file. 

Next, they talk about whether design systems fall under the jurisdiction of a frontend developer or web designers. Kaelig has found that a successful design system involves a little bit of everyone and shouldn’t be isolated to one team. They talk about what the developer workflow looks like in a design system. It begins with thinking of a few common rules, a language, and putting it into code. As you scale, design systems can become quite large and it’s impossible for one person to know everything. You either give into the chaos, or you start a devops practice where people start to think about how we build, release, and the path from designer’s brain to production.

The panelists then talk about how to introduce a design system into a company where there are cultural conflicts. Kaelig shares his experience working with SalesForce and introducing a design system there. They discuss what aspects of a design system that would make people want to use it over what the team is currently doing. Usually teams are thankful for the design system. It’s important to build a system that’s complete, flexible, and extensible so that you can adapt it to your team. A good design system incorporates ‘subatomic’ parts like the grid system, color palette, and typography, referred to as design tokens. Design systems enable people to take just the bits of the design system that are interesting to them and build the components that are missing more easily. 

The conversation turns to the installation and upgrade process of a design system. Upgrading is left up to the customer to do on their own time in most cases, unless it’s one of the big customers. They talk about the role of components in upgrading a design system. Kaelig talks about the possibility of Shopify transitioning to web components. Kaelig shares some of his favorite tools for making a design system and how to get started making one. A lot of design teams start by taking a ton of screen shots and looking at all the inconsistencies.Giving them that visibility is a good thing because it helps get everyone get on the same page. The panelists talk about the role of upper management in developing components and how to prioritize feature development. Kaelig talks about what drives the decision to take a feature out. The two main reasons a feature would be removed is because the company wants to change the way things are done and there’s a different need that has arisen. The show concludes by discussing the possibility of a design system getting bloated over time. Kaelig says that Design systems takes some of the burden off your team, help prevent things from getting bloated, allow you to ship less code.

 

Panelists

  • Chris Ferdinandi

  • Aimee Knight

  • Steve Emmerich

With special guest: Kaelig Deloumeau-Prigent

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Steve Emmerich:

Aimee Knight:

Chris Ferdinandi:

Kaelig Deloumeau-Prigent:




y

JSJ 399: Debugging with Async/Await with Valeri Karpov

Valeri Karpov is a maintainer on Mongoose, has started a few companies, and works for a company called Booster Fuels. Today’s topic debugging with Async/Await. The panel talks about some of the challenges of debugging with Async. AJ, however, has never encountered the same problems, so he shares his debugging method. 

Valeri differentiates between .catch vs try...catch, and talks about why he prefers .catch. There are two ways to handle all errors in an async function without leading to an unhandled promise rejection. The first is to wrap the entire body of the async function in a try...catch, has some limitations. Calling an async function always returns a promise, so the other approach is calling .catch on the promise to handle any errors that occur in that function body. One of the key differences is if you return a promise within an async function, and that return promise is wrapped in a try...catch, the catch block won’t get called if that promise is rejected, whereas if you call .catch on the promise that the function returns, you’ll actually catch that error. There are rare instances where this can get tricky and unintuitive, such as where you have to call new promise and have resolve and reject, and you can get unexpected behavior.

The panel discusses Valeri’s current favorite JS interview question, which is,  “Given a stream, implement a function called ‘stream to promise’ that, given a stream, returns a promise that resolves to the concatenation of all the data chunks emitted by the stream, or rejects if the stream emits an error event.” It’s really simple to get this qustion right, and really simple to get it wrong, and the difference can be catastrophic. AJ cautions listeners to never use the data event except in the cases Val was talking about, only use the readable event.

The conversation turns to the function of a readable event. Since data always pushes data, when you get a readable event, it’s up to you to call read inside the function handler, and then you get back a chunk of data, call read again and again until the read returns null. When you use readable, you are in control and you avoid piling functions into RAM. In addition, the right function will return true or false to let you know if the buffer is full or not. This is a way to mix imperative style into a stream.

The next discussion topics are the differences between imperative style and reactive style and how a waits and promises work in a normal four loop. A wait suspends the execution of a function until the promise is resolved. Does a wait actually stop the loop or is it just transpiling like a promise and it doesn’t stop the loop. AJ wrote a module called Batch Async to be not as greedy as promise.all but not as limited as other options.

The JavaScript panelists talk about different async iterators they’ve used, such as Babel. They discuss the merits of Babel, especially since baseline Android phones (which a significant portion of the population of the world uses) run UC Browser that doesn’t support Babel, and so a significant chunk of the population of the world. On the other hand, if you want to target a large audience, you need to use Babel.

Since frameworks in general don’t handle async very well, the panel discusses ways to mitigate this. They talk about different frameworks like Vue, React, and Express and how they support async functions. They discuss why there is no way for you to actually cancel an async option in an actual case, how complex canceling is, and what you are really trying to solve for in the cancellation process. 

Canceling something is a complex problem. Valeri talks about his one case where he had a specific bug that required non-generic engineering to solve, and cancelling actually solved something. When AJ has come across cancellation issues, it’s very specific to that use case. The rest of the panelists talk about their experiences with having to cancel something. 

Finally, they talk about their experience with async generator functions. A generator is a function that lets you enter into the function later. This makes sense for very large or long running data sets, but when you have a bounded items, don’t complicate your code this way. When an async generator function yields, you explicitly need to call next in order for it to pick up again. If you don’t call ‘next’, it’s essentially cancelled. Remember that object.keys and object.values are your friends. 

Panelists

  • Christopher Buecheler

  • AJ O’Neal

  • Charles Max Wood

With special guest: Valeri Karpov

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

AJ O’Neal:

Christopher Buecheler:

Charles Max Wood:

Valeri Karpov:




y

JSJ 403: Why Developers Need Social Skills with Mani Vaya

In this episode of JavaScript Jabber, Charles talks about the new direction he has for the company. He wants  to drive people to the point that they have the skills that make people want to hire and work with them, to teach them how to ‘Max out’. Today the panel the skills that developers need to progress in their careers: social skills. 

The panel talks about their observations from work that the people who advanced and grow in their career were the ones with social skills, not necessarily with technical skills. The company wants to get stuff done, and if your social skills are getting in the way of projects getting done because you can’t work with others, you are not that useful to the company, and you will be stuck in the lower ranks while others who may not have the same technical skills will rise in the ranks because they are pleasant to work with. Mani talks about his personal experience getting laid off for lacking these soft skills. But then he read the book 48 Laws of Power by Robert Green, realized his shortcomings, and started to apply just one lesson from the book. Within 6 months, he was promoted.

Mani delves deeper into the first lesson taught in 48 Laws of Power, Never Outshine the Master. Fundamentally, this means that you don’t try to prove in meetings how good you are, or that they’re wrong, or that you think that you are better than them. The more you the aforementioned things, the less likely you will be to get promoted or trusted. Mani talks about how he used to do these things and how it cost him multiple jobs. When he put this lesson into practice, he changed his methods and the boss started to like him, leading to his promotion 6 months later. The panel discusses this lesson and what benefits can come from it. 

Mani shares another lesson that he learned through the story of a friend trying to get him to invest in his business. After Mani refused to invest multiple times, his friend stopped asking him to invest, but instead asked him for business advice. Eventually, Mani invested in the business because when he saw that his friend was influenced by his advice, it engendered trust between them. The panel agrees that if you want to influence someone, you have to be influenced by them. It is important to treat someone as a person rather than an asset or wallet, and ensure them that their investment is not their end goal. One of the most fundamental social skills that you must be able to like people, because other people can smell manipulation. 

The panel transitions to talking about the paradoxical nature of social skills and that they are often the opposite of what you think will work in a situation. Unfortunately, there will always be difficult people to work with. To illustrate how to work with difficult people, Mani shares the story of how Gengis Khan was convinced not to destroy a city of artists and engineers by his advisor, Yelu Chucai. Gengis Khan agreed because Yelu Chucai was able to structure his plea in a way that would also benefit Gengis Khan. 

The conversation shifts to how to conduct an interview to see if a candidate will fit into your team culture. First, you must know what you’re looking for and understand your team culture, and then ask for stories of when they accomplished something in the interview. If every story is all about how they did something and they don’t include other people, then that may indicate their self-centeredness. They discuss the Ben Franklin Effect. 

For those listeners wondering where to begin with all this self improvement, Mani has read over 2,000 books on business and offers a course on his website, 2000books.com. Mani has teamed up with JavaScript Jabber to offer a special deal to the listeners of this podcast. To get lifetime access to Mani’s courses at a 40% discount, follow the links below. 

Panelists

  • Steve Edwards

  • Charles Max Wood

With special guest: Mani Vaya

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Steve Edwards:

Charles Max Wood:

Mani Vaya: 




y

JSJ 406: Security in Node

Today the panel is talking about security features that are being added to Node 13. AJ talks about the background and what he’s working with Let’s Encrypt. He talks about changes that Node has made to the TLS module. TLS is a handshake that happens between a client and a server. They exchange certificates, generate some random numbers to use for encryption, and TLS handles the encryption. The move to HTTP/2 is all about fixing legacy bugs and legacy features from the SSL days and reducing the number of handshakes.

AJ talks about the difference between TLS and HTTPS. While TLS reduces the handshakes between client and server, HTTPS is just HTTP and has no knowledge that TLS is going on. HTTP/2 is more baked in as both encryption and compression are part of the specification and you get it automatically. HTTP/2 is also supposed to be faster because there’s fewer handshakes, and you can build heuristic based web servers. Since browsers have varying degrees of compatibility, a smart HTTP/2 server will classify the browser and anticipate what files to send to a client based on behavior and characteristics without the client requesting them

A lot of these new features will be built into Node, in addition to some other notable features. First, there will now be set context on the TLS object. Second, if you’re connected to a server, and the server manages multiple domains, the certificate will have multiple names on it. Previously, each different server name had a different network request, but now a .gitcertificate will let you get all the metadata about the certificate, including the primary domain and all the secondary domains and reuse the connections. 

These new features are a great improvement on the old Node. Previously, the TLS module in Node has been an absolute mess. These are APIs that have been long neglected, and are long overdue core editions to Node. Because of these additions, Node Crypto has finally become usable. HTTP/2 is now stable, usable, and has backwards compatable API, and a dictionary of headers to make it more efficient in compression.

The conversation turns back to certificates, and AJ explains what a certificate is and what it represents. A certificate has on it a subject, which is a field which contains things like common name, which in the case of HTTPS is the server name or host name. then it will have subject alternative names (SAN), which will have a list of other names that are valid on that certificate. Also included on the certificate is the name of the authority that issued the certificate. AJ talks about some of the different types of certificates, such as DV, OV, and EV certificates. They differentiate between encryption and hashing. Hashing is for verifying the integrity of data, while encryption can be used either as signing to verify identity or to keep data owned privately to the parties that are part of the connection. Encryption does not necessarily guarantee that the data is the original data. The show concludes with AJ talking about how he wants to make encryption available to the average person so that everyone can share securely. 

Panelists

  • Steve Edwards

  • AJ O’Neal

  • Charles Max Wood

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Steve Edwards:

AJ O’Neal:

Charles Max Wood: 




y

JSJ 407: Reactive JavaScript and Storybook with Dean Radcliffe

Dean is a developer from Chicago and was previously on React Round Up 083. Today he has come over to JavaScript Jabber to talk about reactive programming and Storybook. Reactive programming is the opposite of imperative programming, where it will change exactly when needed instead of change only when told to. Reactivity existed long before React, and Dean talks about his history with reactive programming. He illustrates this difference by talking about Trello and Jira. In Trello, as you move cards from swimlane to another swimlane, everyone on the board sees those changes right away. In Jira,  if you have 11 tabs open, and you update data in one tab, probably 10 of your tabs are stale now and you might have to refresh. Reactive programming is the difference between Trello and Jira.

The panel discusses why reactive JavaScript is not more widely used. People now tend to look for more focused tools to solve a particular part of the problem than an all in one tool like Meteor.js. Dean talks about the problems that Storybook solves. Storybook has hot reloading environments in frontend components, so you don’t need the backend to run. Storybook also allows you to create a catalogue of UI states. JC and Dean talk about how Storybook could create opportunities for collaboration between engineers and designers. They discuss some causes of breakage that automation could help solve, such as styles not being applied properly and internationalization issues. Dean shares how to solve some network issues, such as having operators in RxJs. RxJs is useful for overlapping calls because it was built with cancelability from the beginning. 

Dean talks about his tool Storybook Animate, which allows you to see what the user sees. Storybook is an actively updated product, and Dean talks about how to get started with it. The show concludes with Dean talking about some things coming down the pipe and how he is actively involved in looking for good general solutions to help people write bulletproof code. 

Panelists

  • JC Hiatt

With special guest: Dean Radcliffe

Sponsors

________________________________________________________________________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood will be out on November 20th on Amazon.  Get your copy on that date only for $1.

________________________________________________________________________________________________________________________

Links

Follow DevChatTV on Facebook and Twitter

Picks

JC Hiatt:

Dean Radcliffe: 




y

The MaxCoders Guide To Finding Your Dream Developer Job

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is available on Amazon. Get your copy here today only for $2.99!




y

The MaxCoders Guide To Finding Your Dream Developer Job

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is available on Amazon. Get your copy here today only for $2.99!




y

JSJ 418: Security Scary Stories and How to Avoid Them with Kevin A McGrail

In this episode of JavaScript Jabber the panel interviews security expert, Kevin A. McGrail. He starts by explaining what security frameworks and what they do. The panel wonders how to know if your developers are capable of self-auditing your security or if you need help. Kevin shares recommendations for companies to look at to answer that question. 

Aimee Knight explains the hell she has been in making changes to be compliant with CCPA. The panel considers how policies like this complicate security, are nearly impossible to be compliant with and how they can be weaponized. They discuss the need for technical people to be involved in writing these laws. 

Kevin explains how you can know how secure your systems actually are. He shares the culture of security first he tries to instill in the companies he trains. He also trains them on how to think like a bad guy and explains how this helps developers become security first developers. The panel discusses how scams have evolved and how the same scams are still being run. They consider the importance of automated training and teaching developers to do it right the first time.

Finally, they consider the different ways of authentication, passwords, passphrases, sim card, biometrics. Kevin warns against oversharing or announcing vacations. The panel discusses real-world tactics bad guys use. Kevin explains what he trains people to do and look out for to increase security with both social engineering and technical expertise. 

Panelists

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

  • Dan Shappir

  • Steve Edwards

Guest

  • Kevin A McGrail

Sponsors

____________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links

Follow DevChatTV on Facebook and Twitter

Picks

Aimee Knight:

AJ O’Neal:

Dan Shappir:

Kevin A McGrail:

Steve Edwards:




y

MJS 140: Tommy Hodgins

Tommy Hodgins is a developer that typically works on A/B tests figuring out how to get websites the outcomes they want. He got into JavaScript and front-end technologies and then read a paper that led him to realize the capabilities of writing software to solve problems. He maintains a front-end focus with his A/B testing work and CSS in JS and other work.

Host: Charles Max Wood

Joined By Special Guest: Tommy Hodgins

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Picks

Tommy Hodgins:

Charles Max Wood:




y

JSJ 426: Killing the Release Night with Progressive Delivery with Dave Karow

JavaScript Remote Conf 2020

May 14th to 15th - register now!


Dave Karow is a developer evangelist for Split. He dives into how you can deliver software sustainably without burning out. His background is in performance and he's moved into smooth deliveries. He pushes the ideas behind continuous delivery and how to avoid getting paid to stay late in "free" pizzas.

Panel

  • AJ O’Neal

  • Aimee Knight

  • Charles Max Wood

  • Dan Shappir

Guest

  • Dave Karow

Sponsors

____________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links

Picks

Aimee Knight:

Dan Shappir:

AJ O’Neal:

Charles Max Wood

Dave Karow:

Follow JavaScript Jabber on Twitter > @JSJabb




y

JSJ 427: How to Start a Side Hustle as a Programmer with Mani Vaya

JavaScript Remote Conf 2020

May 14th to 15th - register now!


Mani Vaya joins Charles Max Wood to talk about how developers can add the enterepreneur hat to the others they wear by starting a side gig. They discuss various ideas around entrepreneurship, the books they got them from, and how they've applied them in their own businesses.

Panel

  • Charles Max Wood

Guest

  • Mani Vaya

Sponsors

__________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

__________________________________________________

Picks

Mani Vaya:

Charles Max Wood:


Follow JavaScript Jabber on Twitter > @JSJabbber




y

MJS 145: Varya Stepanova

JavaScript Remote Conf 2020

May 14th to 15th - register now!

Varya is an expert in design systems. She talks about the process of working in and building design systems. She learned basic Pascal at school. She did programming exercises on paper. She then got into building web pages for groups she was a part of. She then picked up PHP and went professional at that point. On the front-end, she began picking up JavaScript and worked using Yandex's internal framework. Follow here story through the rest of the podcast.

Host: Charles Max Wood

Joined By Special Guest: Varya Stepanova

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Links

Picks

Charles Max Wood:

Varya Stepanova:

  • Learn a New Language!




y

JSJ 429: Learning about Postman with Joyce Lin

JavaScript Remote Conf 2020

May 13th to 15th - register now!

Join us as we talk to Joyce Lin, a developer relations advocate with Postman, and we talk about this amazing tool for interacting with APIs. We discuss it’s more well-known features, and also learn about other less well known, but very powerful features that allow users to greatly increase the usefulness of the tool, both for front end and back end developers.

Panel

  • Aimee Knight
  • Steve Edwards

Guest

  • Joyce Lin

Sponsors

____________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links

Picks

Steve Edwards:

Joyce Lin:

Follow JavaScript Jabber on Twitter > @JSJabber




y

Yearbook of China city competitiveness 2012 [electronic resource] / Gui Qiangfang, principal editor and evaluator




y

Yearbook of cultural property law. 2006 [electronic resource] / Sherry Hutt, editior, David Tarler, assistant editor




y

Yearbook of cultural property law. 2007 [electronic resource] / Sherry Hutt, editior, David Tarler, assistant editor




y

Yearbook of cultural property law. 2008 [electronic resource] / edited by Sherry Hutt, David Tarler




y

Yearbook of cultural property law. 2009 [electronic resource] / Sherry Hutt, editor; David Tarler, assistant editor




y

Yearbook of cultural property law. 2010 [electronic resource] / Sherry Hutt, editor; David Tarler, assistant editor




y

Yearning for the new age [electronic resource] : Laura Holloway-Langford and late Victorian spirituality / Diane Sasson

Sasson, Diane, 1946-




y

Years of plenty, years of want [electronic resource] : France and the legacy of the Great War / Benjamin Franklin Martin

Martin, Benjamin F., 1947-




y

Yeast research [electronic resource] : a historical overview / James A. Barnett and Linda Barnett

Barnett, J. A. (James Arthur), 1923-




y

Yeats and the logic of formalism [electronic resource] / Vereen M. Bell

Bell, Vereen M., 1934-




y

Yeats's poetic codes [electronic resource] / Nicholas Grene

Grene, Nicholas




y

The Yehud stamp impressions [electronic resource] : a corpus of inscribed impressions from the Persian and Hellenistic periods in Judah / Oded Lipschits and David S. Vanderhooft

Lipschitz, Oded




y

Yellow crocodiles and blue oranges [electronic resource] : Russian animated film since World War Two / David MacFadyen

MacFadyen, David, 1964-




y

Yellow dogs and Republicans [electronic resource] : Allan Shivers and Texas two-party politics / Ricky F. Dobbs

Dobbs, Ricky F




y

Yellow future [electronic resource] : oriental style in Hollywood cinema / Jane Chi Hyun Park

Park, Jane Chi Hyun




y

Yellow power, yellow soul [electronic resource] : the radical art of Fred Ho / edited by Roger N. Buckley and Tamara Roberts




y

The Yellow River [electronic resource] : water and life / Tetsuya Kusuda, editor




y

"The yellow wall-paper" by Charlotte Perkins Gilman [electronic resource] : a dual-text critical edition / edited by Shawn St. Jean

Gilman, Charlotte Perkins, 1860-1935




y

Yellowface [electronic resource] : creating the Chinese in American popular music and performance, 1850s-1920s / Krystyn R. Moon

Moon, Krystyn R., 1974-




y

The yellowhammer war [electronic resource] : the Civil War and Reconstruction in Alabama / edited by Kenneth W. Noe




y

Yellowstone's wildlife in transition [electronic resource] / edited by P.J. White, Robert A. Garrott, Glenn E. Plumb




y

Yeltsin's Russia and the West [electronic resource] / Andrew Felkay

Felkay, Andrew




y

Yemen [electronic resource] : dancing on the heads of snakes / Victoria Clark

Clark, Victoria, 1961-




y

Yerkes Observatory, 1892-1950 [electronic resource] : the birth, near death, and resurrection of a scientific research institution / Donald E. Osterbrock

Osterbrock, Donald E