pr

JSJ 305: Continuous Integration, Processes, and DangerJS with Orta Therox

Panel:

  • Charles Max Wood
  • Aimee Knight
  • Joe Eames
  • AJ O'Neal
  • Special Guests: Orta Therox

In this episode, the JavaScript Jabber panelists talk about the tool Danger with Orta Therox. Danger allows you to create cultural rules about your pole request workflow. They discuss what Danger is, how it works, and how it can help you to catch errors and speed up code review. Danger lets you erase discussions so that you can focus on the things that you should really be focusing on, like the code. They also compare Danger to other ways of doing test converge.

In particular, we dive pretty deep on:

  • What is DangerJS?
  • Think of it as being on the PR level
  • Provides an eval context
  • Used on larger projects
  • React, React Native, Apollo, and RxJS
  • Experimenting with moving Danger onto a server
  • Danger can run as a linting step
  • Pre-commit hooks
  • Prettier
  • How do you use Danger on your own machine?
  • Danger Ruby vs Danger JS
  • NPM install
  • How is using Danger better that other ways of test coverage?
  • What kinds of rules can you write for this system?
  • Can use with Ruby or JavaScript
  • React Storybooks
  • Retrospectives
  • And much, much more!

Links:

Picks:

Charles

Aimee

Joe

AJ

Orta




pr

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




pr

JSJ 317: Prisma with Johannes Schickling

Panel:

  • Charles Max Wood
  • AJ O’Neal

Special Guests: Johannes Schickling

In this episode, the JavaScript Jabber panelists discuss Prisma with Johannes Schickling. Johannes is the CEO and co-founder of GraphCool and works with Prisma. They talk about the upcoming changes within GraphCool, what Prisma is, and GraphQL back-end operations. They also touch on the biggest miscommunication about Prisma, how Prisma works, and much more!

In particular, we dive pretty deep on:

  • JSJ Episode 257
  • MJS Episode 055
  • Raised a seed round
  • Rebranding of GraphCool
  • What are you wanting to do with the seed money you raised?
  • Focused on growing his team currently
  • Making GraphQL easier to do
  • The change in the way people build software
  • What is Prisma?
  • Two things you need to do as you want to adopt GraphQL
  • Apollo Client and Relay
  • GraphQL on the back-end
  • Resolvers
  • Resolving data in one query
  • Prisma supports MySQL and PostgreSQL
  • How do you control access to the GraphQL endpoint that Prisma gives you?
  • Biggest miscommunication about Prisma
  • Prisma makes it easier for you to make your own GraphQL server
  • Application schemas
  • How do you blend your own resolvers with Prisma?
  • And much, much more!

Links:

Sponsors

Picks:

Charles

AJ

Johannes




pr

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




pr

JSJ 328: Functional Programming with Ramda with Christine Legge

Panel: 

  • Joe Eames
  • Aimee Knight
  • AJ O'Neal
  • Joe Eames

Special Guests: Christine Legge

In this episode, the JavaScript Jabber panel talks to Christine Legge about functional programming with Ramda. Christine is a front-end software engineer and just recently got a new job in New York working at Google. Ramda is a utility library in JavaScript that focuses on making it easier to write JavaScript code in a functional way. They talk about functional programming and what it is, using Ramda in Redux, and referential transparency. They also touch on why she first got into Ramda, compare Ramda to Lodash and Underscore, and more!

In particular, we dive pretty deep on:

  • Chirstine intro 
  • Works as a front-end software engineer
  • What is Ramda
  • JavaScript
  • Utility library like Lodash and Underscore
  • Lodash and Underscore VS Ramda
  • Functional programming
  • Ramda and Functional programming as a mindset
  • Ramda at ZenHub
  • Ramda with Redux and React
  • What is referential transparency?
  • Why would you use Ramda VS Lodash or Underscore?
  • Why she first got into Ramda
  • Didn’t always want to be a programmer
  • Background in Math
  • Learning functional programming as a new programmer
  • Erlang
  • DrRacket and Java
  • Ramda makes it easy to compose functions
  • Creating clean and reusable code
  • How do you start using Ramda?
  • And much, much more! 

Links:

Sponsors

Picks:

Charles

Aimee

AJ

  • Goat’s Milk

Joe

Christine




pr

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




pr

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




pr

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




pr

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:




pr

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:




pr

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:




pr

JSJ 367: Pair Programming

Sponsors

Panel

  • Aimee Knight
  • AJ O’Neal
  • Chris Ferdinandi

Episode Summary

In this episode of JavaScript Jabber, the panelists discuss each one’s definition of the term ‘pairing’ in programming, including factors like being remote or local, having different seniority levels and the various approaches of going about it in general. They talk about how valuable pairing is, in terms of benefiting the individual as well as how productive it is for the company or the overall business.

The panel also discuss prototyping, pseudo-coding and the advantages and trade-offs involved in pair programming. They talk about their own experiences in which pairing had proven to be extremely beneficial and the ones where it went completely wrong, thereby helping listeners understand the dos and don’ts of the technique. In the end, they elaborate on what actually happens in pairing interviews and the overall hiring process while sharing anecdotes from their own lives.

Links

Follow JavaScript Jabber on Devchat.tvFacebook and Twitter.

Picks

Chris Ferdinandi:

AJ O’Neal:

Aimee Knight:




pr

JSJ 388: Functional Programming with Brian Lonsdorf

Sponsors

Panel

  • Aimee Knight 

  • Chris Buecheler

  • AJ O’Neal

With Special Guest: Brian Lonsdorf

Episode Summary

Brian Lonsdorf works for Salesforce, specializes in functional programming, and wrote a book called Professor Frisby’s Mostly Adequate Guide to Functional Programming. Brian talks about when he got into functional programming and when in their career others should be exposed to it. He talks about the fundamental tenets of functional programming (static mathematical functions), how it differs from object oriented programming, and how to manipulate data in a functional environment. The panel wonders if it is possible to use functional and object oriented programming together and discuss the functional core imperative shell. Brian talks about what is ‘super functional’ and why JavaScript isn’t, but includes methods for making it work. He shares some of the trade-offs he’s found while doing functional programming. Brian defines a monad and goes over some of the common questions he gets about functional programming, such as how to model an app using functional programming. The show concludes with Brian talking about some of the work he’s been doing in AI and machine learning. 

Links

Follow DevChat on Facebook and Twitter

Picks

Aimee Knight:

Chris Buecheler:

AJ O’Neal:

Brian Lonsdorf:




pr

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:




pr

JSJ 415: Progressive Web Apps with Maximiliano Firtman

Maximiliano Firtman is a mobile web developer from Buenos Ares, Argentina. He has been a developer for 24 years and his most recent focus has been on progressive web apps, or PWAs. Steve and Max reflect on the technologies they were using when they first got started in web development and talk about their experience with mobile development. One area that Max emphasized was bringing the web into the mobile space. They discuss the progression of web access on mobile and some of the available tools. Max notes that responsible design has a very high cost in web performance for mobile devices, which requires unique approaches. They discuss some of the issues with latency in mobile, even on 4G. The solution to this latency is PWAs.

Progressive web apps are a set of best practices to create web apps that are installable. They can work offline at high speeds on several operating systems. Once installed, it looks like any other app on the system. Max delves into more details on how it works. He talks about how the resources for your application are managed. He assures listeners that it’s just a website that’s using a new API, they’re not changing the way the web works, and that when that API is there, the app can be installed. It will also generally use your default browser. Steve and Max discuss how local data is stored with PWAs. To write PWAs, you can use Angular, React, JavaScript, or Vue, and it’s a pretty transparent process. Max talks about some common tools used for local storage and some of the PWAs he’s worked on in the past. The benefit of using PWAs is that they generally run faster than regular web apps. To get started, Max advises listeners to install one and start exploring.

Panelists

  • Steve Edwards

Guest

  • Maximiliano Firtman

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:

Maximiliano Firtman:




pr

MJS 136: Kaelig Deloumeau-Prigent

This My JavaScript Story episode is a discussion with Kaelig Deloumeau-Prigent. Kaelig works on the Polaris design system from Shopify. We walk through his journey into programming, HTML, and CSS. We wander through is career until he was building design systems at Shopify.

Host: Charles Max Wood

Joined By Special Guest: Kaelig Deloumeau-Pregent

Sponsors

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

  • CacheFly

___________________________________________________________________________________________

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

___________________________________________________________________________________________

Links

Picks

Kaelig Deloumeau-Prigent:

Charles Max Wood:




pr

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




pr

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




pr

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




pr

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




pr

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




pr

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




pr

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




pr

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




pr

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




pr

You are what you eat [electronic resource] : literary probes into the palate / edited by Annette M. Magid




pr

Young children, parents and professionals [electronic resource] : enhancing the links in early childhood / Margaret Henry

Henry, Margaret, 1931-




pr

Young people living with cancer [electronic resource] : implications for policy and practice / Anne Grinyer

Grinyer, Anne, 1950-




pr

Young people's experiences of loss and bereavement [electronic resource] : towards an interdisciplinary approach / Jane Ribbens McCarthy

Ribbens McCarthy, Jane




pr

The young professional's survival guide [electronic resource] : from cab fares to moral snares / C.K. Gunsalus

Gunsalus, C. K




pr

Young researchers [electronic resource] : informational reading and writing in the early and primary years / Margaret Mallett

Mallett, Margaret




pr

Younger people with dementia [electronic resource] : planning, practice, and development / edited by Sylvia Cox and John Keady ; foreword by Mary Marshall




pr

Youngest recruits [electronic resource] : pre-war, war & post-war experiences in Western Côte d'Ivoire / Magali Chelpi-den Hamer

Chelpi-den Hamer, Magali




pr

Your chemical science thesis [electronic resource] : an introductory guide to writing up your research project / [written and edited by Natalie Mansfield]

Mansfield, Natalie




pr

Your first thirty days [electronic resource] : building a professional image in a new job / Elwood N. Chapman and Robert B. Maddux

Chapman, Elwood N




pr

Your Google game plan for success [electronic resource] : increasing your web presence with Google AdWords, Analytics and Website Optimizer / Joe Teixeira

Teixeira, Joe




pr

Your money and your life [electronic resource] : a lifetime approach to money management / Robert Z. Aliber

Aliber, Robert Z




pr

Your options handbook [electronic resource] : the practical reference and strategy guide to trading options / Jared A. Levy

Levy, Jared, 1976-




pr

Your rights at work [electronic resource] : all you need to know about workplace law, and how to use it to protect your job / by Richard C. Busse

Busse, Richard C




pr

Your successful project management career [electronic resource] / Ronald B. Cagle

Cagle, Ronald B




pr

Youth development and critical education [electronic resource] : the promise of democratic action / Richard D. Lakes

Lakes, Richard D




pr

Youth employment and training programs [electronic resource] : the YEDPA years / Charles L. Betsey, Robinson G. Hollister, Jr., and Mary R. Papageorgiou, editors ; Committee on Youth Employment Programs, Commission on Behavioral and Social Sciences and Ed




pr

Youth employment in Sub-Saharan Africa [electronic resource] / Deon Filmer and Louise Fox with Karen Brooks, Aparajita Goyal, Taye Mengistae, Patrick Premand, Dena Ringold, Siddharth Sharma, and Sergiy Zorya

Filmer, Deon, author




pr

Youth entrepreneurship and local development in Central and Eastern Europe [electronic resource] / edited by Paul Blokker, Bruno Dallago




pr

The youth gang problem [electronic resource] : a community approach / Irving A. Spergel

Spergel, Irving A




pr

Youth justice and child protection [electronic resource] / edited by Malcolm Hill, Andrew Lockyer and Fred Stone




pr

The Youth labor market problem [electronic resource] : its nature, causes, and consequences / edited by Richard B. Freeman and David A. Wise




pr

Youth [electronic resource] : pathways to decent work : promoting youth employment - tackling the challenge / International Labour Conference, 93rd session, 2005

International Labour Conference (93rd : 2005 : Geneva, Switzerland)




pr

Youth peacebuilding [electronic resource] : music, gender, and change / Lesley J. Pruitt

Pruitt, Lesley J




pr

Youth, popular culture and moral panics [electronic resource] : penny gaffs to gangsta-rap, 1830-1996 / John Springhall

Springhall, John