POPULARITY
Panel: Charles Max Wood Joe Eames John Papa Alyssa Nicoll Special Guest: Michael Giambalvo In this episode, Chuck talks with special guest Michael Giambalvo who is an author of the book titled, “Testing Angular Applications.” This book can be purchased through Amazon, Manning Publications, among other sites, too. The panelists and the guest talk about different types of tests, such as end-to-end testing and unit testing. They also talk about Angular, Java, Mocha, Test Café, and much more! Check it out! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:53 – Chuck: Our panel is John Papa, Joe Eames, Alyssa Nicoll, and myself. My new show is the DevRev – check it out, please! 1:26 – Guest: I am a contributing author to our new book, which is about Angular. 1:56 – Chuck: How is it like to write with multiple people? 2:04 – Guest: Yep it’s hard b/c we are in different areas. Back in the 2.0 days, Jesse was writing a book. He was talking about typescript and components. Craig made friends with Jesse and they were talking about the book he was writing. Then we all jumped in to get in finished. We all had areas that we were specialists in! 3:21 – Alyssa: If you break it up that makes sense. 3:31 – Guest. 3:40 – Panel: Pick different words and go around the room. 3:51 – Panel: You write the first ½ of a sentence and then you write the other ½ of the sentence! 4:10 – Guest: You have these big word documents and go back-and-forth. 4:36 – Alyssa: Editing and then pass it back-and-forth – how does that work? 4:46 – Guest: It’s like 8 pass backs-and-forth. 5:35 – Guest: The editing was the main issue – it took forever! 5:50 – Chuck: We were going to co-author a book and we didn’t. Chuck: If you could break down the book in 4 core topics what would they be? Elevator pitch? What is the starting knowledge? 6:18 – Guest: We expect you to know Angular Intro and that’s it! 6:43 – Chuck: What are the principles? 6:50 – Guest: We talk about the testing component. We highlight the benefits of using Angular vs. Angular.js. That shows up in the book a lot. It’s very example driven. 7:28 – Chuck: We have been talking about testing quite a bit on the show lately. 8:22 – Chuck: Do you see people using the testing in regards to the pyramid? 8:33 – Guest: I am not a huge fan of the pyramid. Some questions I ask are: Does it run quickly? Is it reliable? To give you some background I work on Google Club Platform. 10:21 – The guest talks about “Page Level Integration Tests.” 11:31 – Alyssa. 11:50 – Chuck: After your explanation after writing your book I’m sure it’s a breeze now. Knowing these tests and having the confidence is great. 12:13 – Guest: Tools like Cypress is very helpful. Web Driver Testing, too. 12:43 – Chuck: Where do people start? What do you recommend? Do they start at Protractor or do they come down to unit tests? 13:02 – Guest: Finding the balance is important. 14:30 – Chuck: Check out a past episode that we’ve done. 14:40 – Panel asks a question about tools such as Test Café and Cypress. 14:50 – Guest: I really don’t know Test Café. There is a long story in how all of these fit together. The guest talks about Selenium, Cypress, Safari, Edge, Chrome, Firefox, and Puppeteer! 19:24 – Chuck: Does it work in Electron as well, too? 19:26 – Guest: Good question but I don’t know the answer. 19:39 – Chuck: Maybe a listener could write a comment and tell us. 19:43 – Panel: I’ve used Protractor for many years. I like the explanation that you just gave. The great thing about Protractor is that you can... 20:29 – Guest: We wanted to explain the difficulty of Protractor in this book. Guest: You have this test running in Node but then you have your app running in the browser. You have these 2 different run times. You might have to run them separately and there is tons of complexity. 21:15 – Panel: As I am coding you have this visual browser on one side, and then on the other side you have... 22:22 – Guest asks the panelists a question. 22:32 – Panel: I have only used it for a few months and a few several apps but haven’t had those issues, yet. 22:55 – Guest: I haven’t heard of Test Café at all. 23:05 – Alyssa: Is the book online? 23:13 – Guest: It’s available through Manning Publications and Amazon. I think we have some codes to giveaway! 23:34 – Chuck: Yeah, we are working on those codes and giveaways. We have mentioned about 5 or 6 tools – are you worried about your book going out of date? 24:05 – Guest: Sure that is something we are worried about. When editing took a long time to get through that was one of my thoughts. The guest talks about Selenium, control flow, Protractor, 25:45 – Guest (continues): These new features were coming out while the book was coming out – so there’s that. What’s this thing about control flow and why this matters to you, etc. We were able to add that into the book, which is good. We were able to get those instructions out there. Books have a delay to them. 26:47 – Chuck: We talked about this in JavaScript Jabber. This guest talked about this and he is from Big Nerd Ranch. At what point do you have this breaking point: This isn’t a good fit for Test Café or Selenium BUT a good fit for Mocha or Jest? 27:27 – Advertisement: Get A Coder Job! 28:04 – Guest: Do you have a reason why you would switch testing tools? 28:12 – Chuck. 28:41 – Guest: That’s the tradeoff as you move down the ladder. 29:43 – Panel: If you want to trigger an action that isn’t triggerable? 29:50 – Guest answers the question. 30:07 – Panel. 30:20 – Chuck. 30:33 – Guest: You can access code. Usually something in a workflow will make it happen. You have to fall back on some type of UI sort of thing. It’s almost like doing Tetris! I’ve never had to directly call something. I am not the best one to answer that. 31:16 – Panel: It’s like a weird mix of tests. 31:29 – Panelist is talking about unit testing and other tests. 31:55 – Chuck asks a question. 32:02 – Guest: It depends on the scale of your project. 32:28 – Chuck: Do you guys use a test coverage tool or on the side of: everything should run and then test if there is a bug. 32:43 – Guest: Coverage isn’t the full story. 33:26 – Panel: You said you weren’t a fan of the testing pyramid – can you explain why? 33:43 – Guest: I think it turns too much prescriptive. Guest: I think there are bigger concerns out there and the test pyramid is an over-simplification. 35:22 – Panel: What’s the difference between fast and slow testing? 35:28 – Guest: It really depends on your level of knowledge. If your test suite runs more than twenty minutes to an hour that is probably too slow! 36:03 – Alyssa. 36:09 – Chuck. 36:16 – Alyssa: There is no way that 20 minutes equals that! 36:26 – Guest: 20 minutes is the extreme limit. 36:51 – Chuck. 37:11 – Panel: Any new Twitter news on Trump? 37:21 – Panelist talks about test suites! 37:40 – Panelists and guests go back-and-forth. 38:11 – Chuck: Do you have any recommendations for the unit testing? Keeping it small or not so much? 38:29 – Guest: Think: What is this test asking? Don’t write tests that won’t fail if some other tests could have caught them. 39:04 – Alyssa: That’s smart! 39:09 – Guest continues. 39:28 – Chuck: What else to jump on? Chuck: Do you write your tests in typescript or in Java? 39:48 – Guest answers the question. He mentions Python, typescript, and more! 40:17 – Alyssa. 40:22 – Guest continues. 40:46 – Alyssa: How many people worked on that project? 40:50 – Guest: 2 or 3 framework engineers who did the tooling. About 20 people total for tooling to make sure everything worked. 41:18 – Panelist asks a question. 41:22 – Guest: About 20 minutes! 42:35 – Guest wants to talk about the topic: end-to-end testing! 44:59 – Chuck: Let’s do picks! 45:09 – Fresh Books! END – CacheFly! Links: Vue jQuery Angular JavaScript Python React Cypress Puppeteer – GitHub Protractor Test Mocha.js Selenium C# GitHub: testcafe Istanbul “Protractor: A New Hope” – YouTube Video – Michael Giambalvo & Craig Nishina Book: “Testing Angular Applications” – Manning Publications Michael’s GitHub Michael’s Twitter Sponsors: Angular Boot Camp Cache Fly Picks: Alyssa Fantastic Beasts Joe Skyward War of the Spider Queen Luxur - board game Testing Angular with Cypress.io Space Cadets Sonar Family Charles The DevRev Podcast Gary Vee Audio Experience Michael Scale Captain Sonar
Panel: Charles Max Wood Joe Eames John Papa Alyssa Nicoll Special Guest: Michael Giambalvo In this episode, Chuck talks with special guest Michael Giambalvo who is an author of the book titled, “Testing Angular Applications.” This book can be purchased through Amazon, Manning Publications, among other sites, too. The panelists and the guest talk about different types of tests, such as end-to-end testing and unit testing. They also talk about Angular, Java, Mocha, Test Café, and much more! Check it out! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:53 – Chuck: Our panel is John Papa, Joe Eames, Alyssa Nicoll, and myself. My new show is the DevRev – check it out, please! 1:26 – Guest: I am a contributing author to our new book, which is about Angular. 1:56 – Chuck: How is it like to write with multiple people? 2:04 – Guest: Yep it’s hard b/c we are in different areas. Back in the 2.0 days, Jesse was writing a book. He was talking about typescript and components. Craig made friends with Jesse and they were talking about the book he was writing. Then we all jumped in to get in finished. We all had areas that we were specialists in! 3:21 – Alyssa: If you break it up that makes sense. 3:31 – Guest. 3:40 – Panel: Pick different words and go around the room. 3:51 – Panel: You write the first ½ of a sentence and then you write the other ½ of the sentence! 4:10 – Guest: You have these big word documents and go back-and-forth. 4:36 – Alyssa: Editing and then pass it back-and-forth – how does that work? 4:46 – Guest: It’s like 8 pass backs-and-forth. 5:35 – Guest: The editing was the main issue – it took forever! 5:50 – Chuck: We were going to co-author a book and we didn’t. Chuck: If you could break down the book in 4 core topics what would they be? Elevator pitch? What is the starting knowledge? 6:18 – Guest: We expect you to know Angular Intro and that’s it! 6:43 – Chuck: What are the principles? 6:50 – Guest: We talk about the testing component. We highlight the benefits of using Angular vs. Angular.js. That shows up in the book a lot. It’s very example driven. 7:28 – Chuck: We have been talking about testing quite a bit on the show lately. 8:22 – Chuck: Do you see people using the testing in regards to the pyramid? 8:33 – Guest: I am not a huge fan of the pyramid. Some questions I ask are: Does it run quickly? Is it reliable? To give you some background I work on Google Club Platform. 10:21 – The guest talks about “Page Level Integration Tests.” 11:31 – Alyssa. 11:50 – Chuck: After your explanation after writing your book I’m sure it’s a breeze now. Knowing these tests and having the confidence is great. 12:13 – Guest: Tools like Cypress is very helpful. Web Driver Testing, too. 12:43 – Chuck: Where do people start? What do you recommend? Do they start at Protractor or do they come down to unit tests? 13:02 – Guest: Finding the balance is important. 14:30 – Chuck: Check out a past episode that we’ve done. 14:40 – Panel asks a question about tools such as Test Café and Cypress. 14:50 – Guest: I really don’t know Test Café. There is a long story in how all of these fit together. The guest talks about Selenium, Cypress, Safari, Edge, Chrome, Firefox, and Puppeteer! 19:24 – Chuck: Does it work in Electron as well, too? 19:26 – Guest: Good question but I don’t know the answer. 19:39 – Chuck: Maybe a listener could write a comment and tell us. 19:43 – Panel: I’ve used Protractor for many years. I like the explanation that you just gave. The great thing about Protractor is that you can... 20:29 – Guest: We wanted to explain the difficulty of Protractor in this book. Guest: You have this test running in Node but then you have your app running in the browser. You have these 2 different run times. You might have to run them separately and there is tons of complexity. 21:15 – Panel: As I am coding you have this visual browser on one side, and then on the other side you have... 22:22 – Guest asks the panelists a question. 22:32 – Panel: I have only used it for a few months and a few several apps but haven’t had those issues, yet. 22:55 – Guest: I haven’t heard of Test Café at all. 23:05 – Alyssa: Is the book online? 23:13 – Guest: It’s available through Manning Publications and Amazon. I think we have some codes to giveaway! 23:34 – Chuck: Yeah, we are working on those codes and giveaways. We have mentioned about 5 or 6 tools – are you worried about your book going out of date? 24:05 – Guest: Sure that is something we are worried about. When editing took a long time to get through that was one of my thoughts. The guest talks about Selenium, control flow, Protractor, 25:45 – Guest (continues): These new features were coming out while the book was coming out – so there’s that. What’s this thing about control flow and why this matters to you, etc. We were able to add that into the book, which is good. We were able to get those instructions out there. Books have a delay to them. 26:47 – Chuck: We talked about this in JavaScript Jabber. This guest talked about this and he is from Big Nerd Ranch. At what point do you have this breaking point: This isn’t a good fit for Test Café or Selenium BUT a good fit for Mocha or Jest? 27:27 – Advertisement: Get A Coder Job! 28:04 – Guest: Do you have a reason why you would switch testing tools? 28:12 – Chuck. 28:41 – Guest: That’s the tradeoff as you move down the ladder. 29:43 – Panel: If you want to trigger an action that isn’t triggerable? 29:50 – Guest answers the question. 30:07 – Panel. 30:20 – Chuck. 30:33 – Guest: You can access code. Usually something in a workflow will make it happen. You have to fall back on some type of UI sort of thing. It’s almost like doing Tetris! I’ve never had to directly call something. I am not the best one to answer that. 31:16 – Panel: It’s like a weird mix of tests. 31:29 – Panelist is talking about unit testing and other tests. 31:55 – Chuck asks a question. 32:02 – Guest: It depends on the scale of your project. 32:28 – Chuck: Do you guys use a test coverage tool or on the side of: everything should run and then test if there is a bug. 32:43 – Guest: Coverage isn’t the full story. 33:26 – Panel: You said you weren’t a fan of the testing pyramid – can you explain why? 33:43 – Guest: I think it turns too much prescriptive. Guest: I think there are bigger concerns out there and the test pyramid is an over-simplification. 35:22 – Panel: What’s the difference between fast and slow testing? 35:28 – Guest: It really depends on your level of knowledge. If your test suite runs more than twenty minutes to an hour that is probably too slow! 36:03 – Alyssa. 36:09 – Chuck. 36:16 – Alyssa: There is no way that 20 minutes equals that! 36:26 – Guest: 20 minutes is the extreme limit. 36:51 – Chuck. 37:11 – Panel: Any new Twitter news on Trump? 37:21 – Panelist talks about test suites! 37:40 – Panelists and guests go back-and-forth. 38:11 – Chuck: Do you have any recommendations for the unit testing? Keeping it small or not so much? 38:29 – Guest: Think: What is this test asking? Don’t write tests that won’t fail if some other tests could have caught them. 39:04 – Alyssa: That’s smart! 39:09 – Guest continues. 39:28 – Chuck: What else to jump on? Chuck: Do you write your tests in typescript or in Java? 39:48 – Guest answers the question. He mentions Python, typescript, and more! 40:17 – Alyssa. 40:22 – Guest continues. 40:46 – Alyssa: How many people worked on that project? 40:50 – Guest: 2 or 3 framework engineers who did the tooling. About 20 people total for tooling to make sure everything worked. 41:18 – Panelist asks a question. 41:22 – Guest: About 20 minutes! 42:35 – Guest wants to talk about the topic: end-to-end testing! 44:59 – Chuck: Let’s do picks! 45:09 – Fresh Books! END – CacheFly! Links: Vue jQuery Angular JavaScript Python React Cypress Puppeteer – GitHub Protractor Test Mocha.js Selenium C# GitHub: testcafe Istanbul “Protractor: A New Hope” – YouTube Video – Michael Giambalvo & Craig Nishina Book: “Testing Angular Applications” – Manning Publications Michael’s GitHub Michael’s Twitter Sponsors: Angular Boot Camp Cache Fly Picks: Alyssa Fantastic Beasts Joe Skyward War of the Spider Queen Luxur - board game Testing Angular with Cypress.io Space Cadets Sonar Family Charles The DevRev Podcast Gary Vee Audio Experience Michael Scale Captain Sonar
Panel: Charles Max Wood Joe Eames John Papa Alyssa Nicoll Special Guest: Michael Giambalvo In this episode, Chuck talks with special guest Michael Giambalvo who is an author of the book titled, “Testing Angular Applications.” This book can be purchased through Amazon, Manning Publications, among other sites, too. The panelists and the guest talk about different types of tests, such as end-to-end testing and unit testing. They also talk about Angular, Java, Mocha, Test Café, and much more! Check it out! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:53 – Chuck: Our panel is John Papa, Joe Eames, Alyssa Nicoll, and myself. My new show is the DevRev – check it out, please! 1:26 – Guest: I am a contributing author to our new book, which is about Angular. 1:56 – Chuck: How is it like to write with multiple people? 2:04 – Guest: Yep it’s hard b/c we are in different areas. Back in the 2.0 days, Jesse was writing a book. He was talking about typescript and components. Craig made friends with Jesse and they were talking about the book he was writing. Then we all jumped in to get in finished. We all had areas that we were specialists in! 3:21 – Alyssa: If you break it up that makes sense. 3:31 – Guest. 3:40 – Panel: Pick different words and go around the room. 3:51 – Panel: You write the first ½ of a sentence and then you write the other ½ of the sentence! 4:10 – Guest: You have these big word documents and go back-and-forth. 4:36 – Alyssa: Editing and then pass it back-and-forth – how does that work? 4:46 – Guest: It’s like 8 pass backs-and-forth. 5:35 – Guest: The editing was the main issue – it took forever! 5:50 – Chuck: We were going to co-author a book and we didn’t. Chuck: If you could break down the book in 4 core topics what would they be? Elevator pitch? What is the starting knowledge? 6:18 – Guest: We expect you to know Angular Intro and that’s it! 6:43 – Chuck: What are the principles? 6:50 – Guest: We talk about the testing component. We highlight the benefits of using Angular vs. Angular.js. That shows up in the book a lot. It’s very example driven. 7:28 – Chuck: We have been talking about testing quite a bit on the show lately. 8:22 – Chuck: Do you see people using the testing in regards to the pyramid? 8:33 – Guest: I am not a huge fan of the pyramid. Some questions I ask are: Does it run quickly? Is it reliable? To give you some background I work on Google Club Platform. 10:21 – The guest talks about “Page Level Integration Tests.” 11:31 – Alyssa. 11:50 – Chuck: After your explanation after writing your book I’m sure it’s a breeze now. Knowing these tests and having the confidence is great. 12:13 – Guest: Tools like Cypress is very helpful. Web Driver Testing, too. 12:43 – Chuck: Where do people start? What do you recommend? Do they start at Protractor or do they come down to unit tests? 13:02 – Guest: Finding the balance is important. 14:30 – Chuck: Check out a past episode that we’ve done. 14:40 – Panel asks a question about tools such as Test Café and Cypress. 14:50 – Guest: I really don’t know Test Café. There is a long story in how all of these fit together. The guest talks about Selenium, Cypress, Safari, Edge, Chrome, Firefox, and Puppeteer! 19:24 – Chuck: Does it work in Electron as well, too? 19:26 – Guest: Good question but I don’t know the answer. 19:39 – Chuck: Maybe a listener could write a comment and tell us. 19:43 – Panel: I’ve used Protractor for many years. I like the explanation that you just gave. The great thing about Protractor is that you can... 20:29 – Guest: We wanted to explain the difficulty of Protractor in this book. Guest: You have this test running in Node but then you have your app running in the browser. You have these 2 different run times. You might have to run them separately and there is tons of complexity. 21:15 – Panel: As I am coding you have this visual browser on one side, and then on the other side you have... 22:22 – Guest asks the panelists a question. 22:32 – Panel: I have only used it for a few months and a few several apps but haven’t had those issues, yet. 22:55 – Guest: I haven’t heard of Test Café at all. 23:05 – Alyssa: Is the book online? 23:13 – Guest: It’s available through Manning Publications and Amazon. I think we have some codes to giveaway! 23:34 – Chuck: Yeah, we are working on those codes and giveaways. We have mentioned about 5 or 6 tools – are you worried about your book going out of date? 24:05 – Guest: Sure that is something we are worried about. When editing took a long time to get through that was one of my thoughts. The guest talks about Selenium, control flow, Protractor, 25:45 – Guest (continues): These new features were coming out while the book was coming out – so there’s that. What’s this thing about control flow and why this matters to you, etc. We were able to add that into the book, which is good. We were able to get those instructions out there. Books have a delay to them. 26:47 – Chuck: We talked about this in JavaScript Jabber. This guest talked about this and he is from Big Nerd Ranch. At what point do you have this breaking point: This isn’t a good fit for Test Café or Selenium BUT a good fit for Mocha or Jest? 27:27 – Advertisement: Get A Coder Job! 28:04 – Guest: Do you have a reason why you would switch testing tools? 28:12 – Chuck. 28:41 – Guest: That’s the tradeoff as you move down the ladder. 29:43 – Panel: If you want to trigger an action that isn’t triggerable? 29:50 – Guest answers the question. 30:07 – Panel. 30:20 – Chuck. 30:33 – Guest: You can access code. Usually something in a workflow will make it happen. You have to fall back on some type of UI sort of thing. It’s almost like doing Tetris! I’ve never had to directly call something. I am not the best one to answer that. 31:16 – Panel: It’s like a weird mix of tests. 31:29 – Panelist is talking about unit testing and other tests. 31:55 – Chuck asks a question. 32:02 – Guest: It depends on the scale of your project. 32:28 – Chuck: Do you guys use a test coverage tool or on the side of: everything should run and then test if there is a bug. 32:43 – Guest: Coverage isn’t the full story. 33:26 – Panel: You said you weren’t a fan of the testing pyramid – can you explain why? 33:43 – Guest: I think it turns too much prescriptive. Guest: I think there are bigger concerns out there and the test pyramid is an over-simplification. 35:22 – Panel: What’s the difference between fast and slow testing? 35:28 – Guest: It really depends on your level of knowledge. If your test suite runs more than twenty minutes to an hour that is probably too slow! 36:03 – Alyssa. 36:09 – Chuck. 36:16 – Alyssa: There is no way that 20 minutes equals that! 36:26 – Guest: 20 minutes is the extreme limit. 36:51 – Chuck. 37:11 – Panel: Any new Twitter news on Trump? 37:21 – Panelist talks about test suites! 37:40 – Panelists and guests go back-and-forth. 38:11 – Chuck: Do you have any recommendations for the unit testing? Keeping it small or not so much? 38:29 – Guest: Think: What is this test asking? Don’t write tests that won’t fail if some other tests could have caught them. 39:04 – Alyssa: That’s smart! 39:09 – Guest continues. 39:28 – Chuck: What else to jump on? Chuck: Do you write your tests in typescript or in Java? 39:48 – Guest answers the question. He mentions Python, typescript, and more! 40:17 – Alyssa. 40:22 – Guest continues. 40:46 – Alyssa: How many people worked on that project? 40:50 – Guest: 2 or 3 framework engineers who did the tooling. About 20 people total for tooling to make sure everything worked. 41:18 – Panelist asks a question. 41:22 – Guest: About 20 minutes! 42:35 – Guest wants to talk about the topic: end-to-end testing! 44:59 – Chuck: Let’s do picks! 45:09 – Fresh Books! END – CacheFly! Links: Vue jQuery Angular JavaScript Python React Cypress Puppeteer – GitHub Protractor Test Mocha.js Selenium C# GitHub: testcafe Istanbul “Protractor: A New Hope” – YouTube Video – Michael Giambalvo & Craig Nishina Book: “Testing Angular Applications” – Manning Publications Michael’s GitHub Michael’s Twitter Sponsors: Angular Boot Camp Cache Fly Picks: Alyssa Fantastic Beasts Joe Skyward War of the Spider Queen Luxur - board game Testing Angular with Cypress.io Space Cadets Sonar Family Charles The DevRev Podcast Gary Vee Audio Experience Michael Scale Captain Sonar
Panel: Charles Max Wood Guest: Ryan Chenkie This week on My Angular Story, Charles speaks with Ryan Chenkie (Canada). He is a developer who uses JavaScript with Angular and Node and he does screencasting at angularcasts.io. They talk about Ryan’s background, his current projects, and getting over imposter syndrome! Check it out! In particular, we dive pretty deep on: 0:00 – Advertisement: Get A Coder Job! 0:47 – Chuck: Today our guest is Ryan Chenkie! 0:55 – Guest: Hello! I’m excited! 1:02 – Chuck: What are you doing now? 1:10 – Guest: I spent 2.5 years at Auth0 and learned a ton there. I was doing some side work and then figured out I had to focus on one thing or the other. Now I have been a consultant fulltime and also teaching, too. AngularCast.io I teach there. 1:56 – Chuck: Sounds like people are excited about GraphQL. I’ve been there, too, and make a similar decision. 2:19 – Guest: It was a hard decision b/c I liked all of my colleagues there. I always had the itch to be self-employed. 2:42 – Chuck: You figure out of it’s for you or not. 2:51 – Guest: Yep! I am happy to be another year of it. 3:00 – Chuck: I went free-lanced about a year ago b/c the decision was made for me. 3:29 – Guest: I am grateful for it. 3:40 – Chuck: Yeah, we talk about this a lot on one of my podcast platforms. If you can make a connection with people then you’ll be god. 4:07 – Guest: Yeah I had to figure out if I would have to focus on the marketing side of things or not. Right now the projects are coming to me – right to my front door, which is great! It’s this ever-expanding web. 4:55 – Chuck: Yeah where people tend to show-up. Let’s talk about your story! How did you get into programming? 5:30 – Guest: It was a little less typically at the time. I was fully self-taught. I went to school for a somewhat Geography degree. It got boring for me at some point. I had to do one programming course while in school and it was in Java. I was terrible at it and I didn’t have a clue what I was doing. It didn’t help that the instruction wasn’t great. I was terrible I didn’t understand a thing. I was scared that I was going to fail the course. I came out of there feeling like I didn’t have the chops to be a programmer. I was doing Geomantic-stuff. I learned that the further you get into this programming stuff you would make better money – better job, etc. I was trying to put this map/graph into a website and it said that I had to learn Java. This time, though, the material was taught to me in these small increments. I got into it more and I was more attracted to the idea of programming. 10:00 – Guest continues. 10:32 – Guest: I was learning Angular and JavaScript better. 10:35 – Chuck: Yeah it makes you think through it. You have to go deep. 10:47 – Guest: I would make a sample packet. I would get to certain points and get to a point and I couldn’t explain what I did. I would get to a roadblock and I couldn’t explain it. I would be on this tangent for a while and have to figure this out. I was working with the government, at this time, but I thought: maybe I could try this programming thing for a while. Did you go to NG Vegas conference? 12:20 – Chuck: Nope. 12:25 – Guest: There is this conference in Las Vegas – I am going to go and hang out with people. At this conference I met some important people. This company posted that they needed someone and I thought: this is the job for me. I sent an email – went to an interview – and did an example. I got the job and freaked out because I wasn’t a “real” programmer. I wrote some content for them and it’s been all good. 14:07 – Chuck: Let me back-up real quickly. How did you find Angular? 14:18 – Guest: It’s hard to pinpoint the “moment” I had found Angular. As I am learning through Code Academy I am reading articles and stuff. I heard about Angular.js and watched some online tutorials and watched all of the talks from the conference. I thought that I needed to learn it b/c it was pretty popular at the time. I knew how to write JavaScript, but made me clearly see with Angular.js app I had to back up and learn it. 15:34 – Chuck: Yep! 16:05 – The guest mentions Hacker News among other things. 16:22 – Chuck: Angular and Electron is what we brought you on for – is that what you are doing? 16:36 – Guest: The guest talks about his experiences with Angular and Electron. 18:26 – Chuck: Let’s backup some more – didn’t sound like you worked with a lot of tech companies right? 18:51 – Guest: Yep that was my only one. 18:57 – Chuck: I hear a lot of complaints from people having this imposter syndrome. You only being in the industry for a short amount of time – how did you overcome the imposter syndrome? 19:34 – Guest: Imposter syndrome has been an issue for me – I wasn’t crippled – but it’s debilitating. “Who am I to teach on this subject?” – but I think I’ve made conscious efforts to ignore that and to use it as a little bit as fuel. I remember, man, of being scarred! I remember being terrified to see the online comments – b/c they are going to “know” that I don’t know what I am talking about. Funny thing is that I had a lot of positive comments. Little-by-little, those positive pieces of feedback were good for me. I thought: At least I am helping people (like I said, little-by-little!). I think there has been a part of a loop there. If you can look for that feedback it can help overcome imposter syndrome. The things of value are the things that scare you. 22:41 – Chuck: Yeah, I talk about this all the time to people. I have been self-employed for 8.5 years. I am not going to starve. If I had to, I could go and find a “normal” job. 23:20 – Guest: I agree. One piece of feedback that I got from a colleague is that she said: you are very resourceful! Knowing that it helped b/c it was a boost of confidence. If I had this capacity of being resourceful that helped me make my decision. It wasn’t a good time in the sense that we just had a baby. If it went south then I could always go back and get a “normal” job. 24:43 – Chuck: Yeah we talk about that in Agile development – the further you go the more information you get. 24:58 – Guest. Yep 25:03 – Chuck: What are you doing now? 25:07 – Guest: I’ve had a few large clients these past few years. I have current projects going now one is with a museum. I am speaking at a few conferences – one of them was in San Francisco and Prague. Now I am planning for next year and figuring out what my teaching and speaking plans will be. It looks like I am focusing on Graph QL content. Lots of Angular, too! 26:32 – Chuck: You are web famous! 26:35 – Guest: I don’t know about that, but I do have some things out there. 26:42 – Chuck: How can people find you? 26:49 – Guest: Twitter! Website! GitHub! 27:18 – Chuck: Picks! 27:25 – Fresh Books! END – CacheFly Links: jQuery Angular JavaScript Vue React Chuck’s Twitter Chuck’s E-mail: chuck@devchat.tv Code Academy Auth0 Scotch.io Ryan’s LinkedIn Ryan’s Packages Ryan’s Website Ryan’s Twitter Ryan’s GitHub Sponsors: Get A Coder Job Fresh Books Cache Fly Picks: Ryan Security Headers Try to push past the fear of being an “imposter”! Chuck Dungeons & Dragons Take time with family! Being handy around your home. Lowes. Surprise yourself and go beyond the imposter syndrome!
Panel: Charles Max Wood Guest: Ryan Chenkie This week on My Angular Story, Charles speaks with Ryan Chenkie (Canada). He is a developer who uses JavaScript with Angular and Node and he does screencasting at angularcasts.io. They talk about Ryan’s background, his current projects, and getting over imposter syndrome! Check it out! In particular, we dive pretty deep on: 0:00 – Advertisement: Get A Coder Job! 0:47 – Chuck: Today our guest is Ryan Chenkie! 0:55 – Guest: Hello! I’m excited! 1:02 – Chuck: What are you doing now? 1:10 – Guest: I spent 2.5 years at Auth0 and learned a ton there. I was doing some side work and then figured out I had to focus on one thing or the other. Now I have been a consultant fulltime and also teaching, too. AngularCast.io I teach there. 1:56 – Chuck: Sounds like people are excited about GraphQL. I’ve been there, too, and make a similar decision. 2:19 – Guest: It was a hard decision b/c I liked all of my colleagues there. I always had the itch to be self-employed. 2:42 – Chuck: You figure out of it’s for you or not. 2:51 – Guest: Yep! I am happy to be another year of it. 3:00 – Chuck: I went free-lanced about a year ago b/c the decision was made for me. 3:29 – Guest: I am grateful for it. 3:40 – Chuck: Yeah, we talk about this a lot on one of my podcast platforms. If you can make a connection with people then you’ll be god. 4:07 – Guest: Yeah I had to figure out if I would have to focus on the marketing side of things or not. Right now the projects are coming to me – right to my front door, which is great! It’s this ever-expanding web. 4:55 – Chuck: Yeah where people tend to show-up. Let’s talk about your story! How did you get into programming? 5:30 – Guest: It was a little less typically at the time. I was fully self-taught. I went to school for a somewhat Geography degree. It got boring for me at some point. I had to do one programming course while in school and it was in Java. I was terrible at it and I didn’t have a clue what I was doing. It didn’t help that the instruction wasn’t great. I was terrible I didn’t understand a thing. I was scared that I was going to fail the course. I came out of there feeling like I didn’t have the chops to be a programmer. I was doing Geomantic-stuff. I learned that the further you get into this programming stuff you would make better money – better job, etc. I was trying to put this map/graph into a website and it said that I had to learn Java. This time, though, the material was taught to me in these small increments. I got into it more and I was more attracted to the idea of programming. 10:00 – Guest continues. 10:32 – Guest: I was learning Angular and JavaScript better. 10:35 – Chuck: Yeah it makes you think through it. You have to go deep. 10:47 – Guest: I would make a sample packet. I would get to certain points and get to a point and I couldn’t explain what I did. I would get to a roadblock and I couldn’t explain it. I would be on this tangent for a while and have to figure this out. I was working with the government, at this time, but I thought: maybe I could try this programming thing for a while. Did you go to NG Vegas conference? 12:20 – Chuck: Nope. 12:25 – Guest: There is this conference in Las Vegas – I am going to go and hang out with people. At this conference I met some important people. This company posted that they needed someone and I thought: this is the job for me. I sent an email – went to an interview – and did an example. I got the job and freaked out because I wasn’t a “real” programmer. I wrote some content for them and it’s been all good. 14:07 – Chuck: Let me back-up real quickly. How did you find Angular? 14:18 – Guest: It’s hard to pinpoint the “moment” I had found Angular. As I am learning through Code Academy I am reading articles and stuff. I heard about Angular.js and watched some online tutorials and watched all of the talks from the conference. I thought that I needed to learn it b/c it was pretty popular at the time. I knew how to write JavaScript, but made me clearly see with Angular.js app I had to back up and learn it. 15:34 – Chuck: Yep! 16:05 – The guest mentions Hacker News among other things. 16:22 – Chuck: Angular and Electron is what we brought you on for – is that what you are doing? 16:36 – Guest: The guest talks about his experiences with Angular and Electron. 18:26 – Chuck: Let’s backup some more – didn’t sound like you worked with a lot of tech companies right? 18:51 – Guest: Yep that was my only one. 18:57 – Chuck: I hear a lot of complaints from people having this imposter syndrome. You only being in the industry for a short amount of time – how did you overcome the imposter syndrome? 19:34 – Guest: Imposter syndrome has been an issue for me – I wasn’t crippled – but it’s debilitating. “Who am I to teach on this subject?” – but I think I’ve made conscious efforts to ignore that and to use it as a little bit as fuel. I remember, man, of being scarred! I remember being terrified to see the online comments – b/c they are going to “know” that I don’t know what I am talking about. Funny thing is that I had a lot of positive comments. Little-by-little, those positive pieces of feedback were good for me. I thought: At least I am helping people (like I said, little-by-little!). I think there has been a part of a loop there. If you can look for that feedback it can help overcome imposter syndrome. The things of value are the things that scare you. 22:41 – Chuck: Yeah, I talk about this all the time to people. I have been self-employed for 8.5 years. I am not going to starve. If I had to, I could go and find a “normal” job. 23:20 – Guest: I agree. One piece of feedback that I got from a colleague is that she said: you are very resourceful! Knowing that it helped b/c it was a boost of confidence. If I had this capacity of being resourceful that helped me make my decision. It wasn’t a good time in the sense that we just had a baby. If it went south then I could always go back and get a “normal” job. 24:43 – Chuck: Yeah we talk about that in Agile development – the further you go the more information you get. 24:58 – Guest. Yep 25:03 – Chuck: What are you doing now? 25:07 – Guest: I’ve had a few large clients these past few years. I have current projects going now one is with a museum. I am speaking at a few conferences – one of them was in San Francisco and Prague. Now I am planning for next year and figuring out what my teaching and speaking plans will be. It looks like I am focusing on Graph QL content. Lots of Angular, too! 26:32 – Chuck: You are web famous! 26:35 – Guest: I don’t know about that, but I do have some things out there. 26:42 – Chuck: How can people find you? 26:49 – Guest: Twitter! Website! GitHub! 27:18 – Chuck: Picks! 27:25 – Fresh Books! END – CacheFly Links: jQuery Angular JavaScript Vue React Chuck’s Twitter Chuck’s E-mail: chuck@devchat.tv Code Academy Auth0 Scotch.io Ryan’s LinkedIn Ryan’s Packages Ryan’s Website Ryan’s Twitter Ryan’s GitHub Sponsors: Get A Coder Job Fresh Books Cache Fly Picks: Ryan Security Headers Try to push past the fear of being an “imposter”! Chuck Dungeons & Dragons Take time with family! Being handy around your home. Lowes. Surprise yourself and go beyond the imposter syndrome!
Panel: Charles Max Wood Guest: Ryan Chenkie This week on My Angular Story, Charles speaks with Ryan Chenkie (Canada). He is a developer who uses JavaScript with Angular and Node and he does screencasting at angularcasts.io. They talk about Ryan’s background, his current projects, and getting over imposter syndrome! Check it out! In particular, we dive pretty deep on: 0:00 – Advertisement: Get A Coder Job! 0:47 – Chuck: Today our guest is Ryan Chenkie! 0:55 – Guest: Hello! I’m excited! 1:02 – Chuck: What are you doing now? 1:10 – Guest: I spent 2.5 years at Auth0 and learned a ton there. I was doing some side work and then figured out I had to focus on one thing or the other. Now I have been a consultant fulltime and also teaching, too. AngularCast.io I teach there. 1:56 – Chuck: Sounds like people are excited about GraphQL. I’ve been there, too, and make a similar decision. 2:19 – Guest: It was a hard decision b/c I liked all of my colleagues there. I always had the itch to be self-employed. 2:42 – Chuck: You figure out of it’s for you or not. 2:51 – Guest: Yep! I am happy to be another year of it. 3:00 – Chuck: I went free-lanced about a year ago b/c the decision was made for me. 3:29 – Guest: I am grateful for it. 3:40 – Chuck: Yeah, we talk about this a lot on one of my podcast platforms. If you can make a connection with people then you’ll be god. 4:07 – Guest: Yeah I had to figure out if I would have to focus on the marketing side of things or not. Right now the projects are coming to me – right to my front door, which is great! It’s this ever-expanding web. 4:55 – Chuck: Yeah where people tend to show-up. Let’s talk about your story! How did you get into programming? 5:30 – Guest: It was a little less typically at the time. I was fully self-taught. I went to school for a somewhat Geography degree. It got boring for me at some point. I had to do one programming course while in school and it was in Java. I was terrible at it and I didn’t have a clue what I was doing. It didn’t help that the instruction wasn’t great. I was terrible I didn’t understand a thing. I was scared that I was going to fail the course. I came out of there feeling like I didn’t have the chops to be a programmer. I was doing Geomantic-stuff. I learned that the further you get into this programming stuff you would make better money – better job, etc. I was trying to put this map/graph into a website and it said that I had to learn Java. This time, though, the material was taught to me in these small increments. I got into it more and I was more attracted to the idea of programming. 10:00 – Guest continues. 10:32 – Guest: I was learning Angular and JavaScript better. 10:35 – Chuck: Yeah it makes you think through it. You have to go deep. 10:47 – Guest: I would make a sample packet. I would get to certain points and get to a point and I couldn’t explain what I did. I would get to a roadblock and I couldn’t explain it. I would be on this tangent for a while and have to figure this out. I was working with the government, at this time, but I thought: maybe I could try this programming thing for a while. Did you go to NG Vegas conference? 12:20 – Chuck: Nope. 12:25 – Guest: There is this conference in Las Vegas – I am going to go and hang out with people. At this conference I met some important people. This company posted that they needed someone and I thought: this is the job for me. I sent an email – went to an interview – and did an example. I got the job and freaked out because I wasn’t a “real” programmer. I wrote some content for them and it’s been all good. 14:07 – Chuck: Let me back-up real quickly. How did you find Angular? 14:18 – Guest: It’s hard to pinpoint the “moment” I had found Angular. As I am learning through Code Academy I am reading articles and stuff. I heard about Angular.js and watched some online tutorials and watched all of the talks from the conference. I thought that I needed to learn it b/c it was pretty popular at the time. I knew how to write JavaScript, but made me clearly see with Angular.js app I had to back up and learn it. 15:34 – Chuck: Yep! 16:05 – The guest mentions Hacker News among other things. 16:22 – Chuck: Angular and Electron is what we brought you on for – is that what you are doing? 16:36 – Guest: The guest talks about his experiences with Angular and Electron. 18:26 – Chuck: Let’s backup some more – didn’t sound like you worked with a lot of tech companies right? 18:51 – Guest: Yep that was my only one. 18:57 – Chuck: I hear a lot of complaints from people having this imposter syndrome. You only being in the industry for a short amount of time – how did you overcome the imposter syndrome? 19:34 – Guest: Imposter syndrome has been an issue for me – I wasn’t crippled – but it’s debilitating. “Who am I to teach on this subject?” – but I think I’ve made conscious efforts to ignore that and to use it as a little bit as fuel. I remember, man, of being scarred! I remember being terrified to see the online comments – b/c they are going to “know” that I don’t know what I am talking about. Funny thing is that I had a lot of positive comments. Little-by-little, those positive pieces of feedback were good for me. I thought: At least I am helping people (like I said, little-by-little!). I think there has been a part of a loop there. If you can look for that feedback it can help overcome imposter syndrome. The things of value are the things that scare you. 22:41 – Chuck: Yeah, I talk about this all the time to people. I have been self-employed for 8.5 years. I am not going to starve. If I had to, I could go and find a “normal” job. 23:20 – Guest: I agree. One piece of feedback that I got from a colleague is that she said: you are very resourceful! Knowing that it helped b/c it was a boost of confidence. If I had this capacity of being resourceful that helped me make my decision. It wasn’t a good time in the sense that we just had a baby. If it went south then I could always go back and get a “normal” job. 24:43 – Chuck: Yeah we talk about that in Agile development – the further you go the more information you get. 24:58 – Guest. Yep 25:03 – Chuck: What are you doing now? 25:07 – Guest: I’ve had a few large clients these past few years. I have current projects going now one is with a museum. I am speaking at a few conferences – one of them was in San Francisco and Prague. Now I am planning for next year and figuring out what my teaching and speaking plans will be. It looks like I am focusing on Graph QL content. Lots of Angular, too! 26:32 – Chuck: You are web famous! 26:35 – Guest: I don’t know about that, but I do have some things out there. 26:42 – Chuck: How can people find you? 26:49 – Guest: Twitter! Website! GitHub! 27:18 – Chuck: Picks! 27:25 – Fresh Books! END – CacheFly Links: jQuery Angular JavaScript Vue React Chuck’s Twitter Chuck’s E-mail: chuck@devchat.tv Code Academy Auth0 Scotch.io Ryan’s LinkedIn Ryan’s Packages Ryan’s Website Ryan’s Twitter Ryan’s GitHub Sponsors: Get A Coder Job Fresh Books Cache Fly Picks: Ryan Security Headers Try to push past the fear of being an “imposter”! Chuck Dungeons & Dragons Take time with family! Being handy around your home. Lowes. Surprise yourself and go beyond the imposter syndrome!
Panel: AJ O’Neal Joe Eames Jesse Sanders Special Guest: Sean Hunter In this episode, the panel talks with Sean Hunter who is a software developer, speaker, rock climber, and author of “Aurelia in Action” published by Manning Publications! Today, the panelists and Sean talk about Aurelia and other frameworks. Check it out! Show Topics: 0:00 – Advertisement: KENDO UI 0:38 – Joe: Hello! Our panelists are AJ, Jesse, myself, and our special guest is Sean Hunter (from Australia)! What have you been doing with your life and what is your favorite movie? 1:45 – Guest talks about Vegemite! 2:20 – Guest: I was in the UK and started using Aurelia, which I will talk about today. I have done some talks throughout UK about Aurelia. Also, the past year moved back to Australia had a baby son and it’s been a busy year. Writing a book and being a new parent has been hard. 3:22 – Panel: Tell us the history of Aurelia, please? 3:31 – Panel: Is it like jQuery, React, Vue or what? 3:44 – Guest: Elevator pitch – Aurelia is a single-page app framework! It’s most similar to Vue out of those frameworks; also, similarities to Ember.js. 4:30 – Guest goes into detail about Aurelia. 6:15 – Panel: It sounds like convention over configuration. 6:42 – Guest: Yes that is correct. 7:21 – Panel: Sounds like there is a build-step to it. 7:39 – Guest: There is a build-step you are correct. You will use Webpack in the background. 9:57 – The guest talks about data binding among other things. 10:30 – Guest: You will have your app component and other levels, too. 10:37 – Panel: I am new to Aurelia and so I’m fresh to this. Why Aurelia over the other frameworks? Is there a CLI to help? 11:29 – Guest: Let me start with WHY Aurelia and not the other frameworks. The style that you are using when building the applications is important for your needs. In terms of bundling there is a CUI and that is a way that I prefer to start my projects. Do you want to use CSS or Webpack or...? It’s almost a wizard process! You guys have any questions about the CLI? 14:43 – Panel: Thanks! I was wondering what is actually occurring there? 15:25 – Guest: Good question. Basically it’s that Aurelia has some built-in conventions. Looking at the convention tells Aurelia to pick the Vue model by name. If I need to tell the framework more information then... 17:46 – Panel: I think that for people who are familiar with one or more framework then where on that spectrum would Aurelia fall? 18:20 – Guest: It’s not that opinionated as Ember.js. 19:09 – Panel: Talking about being opinionated – what are some good examples of the choices that you have and how that leads you down a certain path? Any more examples that you can give us? 19:38 – Guest: The main conventions are what I’ve talked about already. I can’t think of more conventions off the top of my head. There are more examples in my book. 20:02 – Panel: Your book? 20:10 – Guest: Yep. 20:13 – Panel. 20:20 – Guest. 21:58 – Panel: Why would I NOT pick Aurelia? 22:19 – Guest: If you are from a React world and you like having things contained in a single-file then Aurelia would fight you. If you want a big company backing then Aurelia isn’t for you. The guest goes into more reasons why or why not one would or wouldn’t want to use Aurelia. 24:24 – Panel: I think the best sell point is the downplay! 24:34 – Guest: Good point. What does the roadmap look like for Aurelia’s team? 25:00 – Guest: Typically, what happens in the Aurelia framework is that data binding (or router) gets pushed by the core team. They are the ones that produce the roadmap and look forward to the framework. The core team is working on the NEXT version of the framework, which is lighter, easier to use, and additional features. It’s proposed to be out for release next year. 26:36 – Advertisement – Sentry.io 27:34 – Panel: I am going to take down the CLI down and see what it does. I am looking at it and seeing how to teach someone to use it. I am using AU, new command, and it says no Aurelia found. I am stuck. 28:06 – Guest: What you would do is specify the project name that you are trying to create and that should create it for you. 28:40 – Panel. 28:45 – Panel. 28:50 – Panel: Stand up on your desk and say: does anyone know anything about computers?! 29:05 – Panelists go back-and-forth. 29:13 – Panel: What frameworks have you used in the past? 29:17 – Guest: I was using single-paged apps back in 2010. 31:10 – Panel: Tell us about the performance of Aurelia? 31:17 – Guest: I was looking at the benchmarks all the time. Last time I looked the performance was comparable. Performances can me measured in a number of different of ways. The guest talks about a dashboard screen that 20 charts or something like that. He didn’t notice any delays getting to the client. 33:29 – Panel: I heard you say the word “observables.” 33:39 – Guest answers the question. 35:30 – Guest: I am not a Redux expert, so I really can’t say. It has similar actions like Redux but the differences I really can’t say. 36:11 – Panel: We really want experts in everything! (Laughs.) 36:25 – Panelist talks about a colleagues’ talk at a conference. He says that he things are doing too much with SPAs. They have their place but we are trying to bundle 8-9 different applications but instead look at them as... What are your thoughts of having multiple SPAs? 37:17 – Guest. 39:08 – Guest: I wonder what your opinions are? What about the splitting approach? 39:22 – Panel: I haven’t looked at it, yet. I am curious, though. I have been developing in GO lately. 40:20 – Guest: I think people can go too far and making it too complex. You don’t want to make the code that complex. 40:45 – Panel: Yeah when the code is “clean” but difficult to discover that’s not good. 41:15 – Guest: I agree when you start repeating yourself then it makes it more difficult. 41:35 – Panel: Chris and I are anti-framework. We prefer to start from a fresh palette and see if a framework can fit into that fresh palette. When you start with a certain framework you are starting with certain configurations set-in-place. 42:48 – Joe: I like my frameworks and I think you are crazy! 43:05 – Panel. 43:11 – Joe: I have a love affair with all frameworks. 43:19 – Panel: I think I am somewhere in the middle. 43:49 – Panel: I don’t think frameworks are all bad but I want to say that it’s smart to not make it too complex upfront. Learn and grow. 44:28 – Guest: I think a good example of that is jQuery, right? 45:10 – Panelist talks about C++, jQuery, among other things. 45:34 – Guest: Frameworks kind of push the limits. 46:08 – Panelist talks about JavaScript, frameworks, and others. 47:04 – Panel: It seems simple to setup routes – anything to help with the lazy way to setup? 47:35 – Guest answers question. 48:37 – Panel: How do we manage complexity and how does messaging work between components? 48:54 – Guest: The simple scenario is that you can follow a simple pattern, which is (came out of Ember community) and that is...Data Down & Actions Up! 50:45 – Guest mentions that Aurelia website! 51:00 – Panel: That sounds great! Sounds like the pattern can be plugged in easily into Aurelia. 51:17 – Picks! 51:20 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Redux Webpack Elixir Ember.js Vue GO jQuery Node.js Puppeteer Cypress Utah JS 2018 – Justin McMurdie’s Talk Aurelia Sean Hunter’s Book! Sean Hunter’s Twitter Sean Hunter’s Website Sean Hunter’s GitHub Sponsors: Kendo UI Sentry CacheFly Picks: Joe React Conf. Endless Quest AJ Extreme Ownership GO Language Harry’s and Flamingo Jesse Sanders The Miracle Morning React Hooks Apple Products Sean Doesn’t Have to Be Crazy at Work Discount Code for Aurelia in Action - hunterpc (40% off Aurelia in Action, all formats) Apple Watch
Panel: Dave Kimura Charles Max Wood Nate Hopkins Special Guest: Josh Justice In this episode of Ruby Rogues, the panelists talk with Josh Justice who is a developer, writer, and speaker. Josh streams JavaScript and web development on Friday’s at 2:00 PM (ET) here! The panelists and the guest talk about Josh’s background and frontend testing in Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Dave, Nate, and myself are on the panel and our special guest is Josh Justice! I am developing a show about developer freedom and it’s called The DevRev. It will be streamed through YouTube, and I will record Friday afternoons. Check out Facebook, too! 2:11 – Josh: Thanks! I am happy to be here! 2:18 – Chuck: Introduce yourself, please! 2:24 – Josh: I have been a developer for about 14 years. I have used PHP and then got into Ruby and then frontend development. 2:46 – Chuck: You work for Big Nerd Ranch in Atlanta? 2:56 – Josh: Yep for the last 3-4 years! 3:15 – Chuck: Can you introduce the topic? 3:25 – The guest talks about Big Nerd Ranch and frontend development. Learn TDD is mentioned, too! Check it out here! 5:06 – Panel: How much bouncing do you do between React and Vue? 5:11 – Guest. 5:47 – Chuck: We need to get you on our podcast shows for React and Vue! It’s an approach that I am familiar with in Ruby – and Selenium what a pain! 6:16 – Guest: I’ve had a good experience with Cypress, actually! 7:47 – Guest: Panelist, can you share your experiences? 7:57 – Panel: Not bad experiences with testing, but now I am trying to minimize my use with JavaScript. 8:30 – Guest: I think there is a big push towards considering more server site rendering. 9:35 – Panel: What’s your recommendation to setup Cypress? 9:40 – Guest: Their docs are really great! They had some conference talks on how to set it up! 10:15 – Guest: Check out my talks about this topic. (Connect Tech 2018). 10:29 – Panel: I think Cypress is a pretty cool solution but one thing that left me confused is that you have to have an environment that is already stood-up and running. Is that accurate or has that changed? 11:00 – Guest: Can you clarify what you mean by a “running environment”? 11:04 – Panelist clarifies. 11:44 – Guest: Luckily for me I have something to say b/c I tried a week ago! 12:01 – Guest mentions Vue CLI 3. 14:38 – Panel: How can you test your code coverage? I want to know how much of my code coverage am I hitting? The applications are up and running, it’s not going through the files (per se), and is there anything that would indicate how good your coverage is with the Cypress test? 15:10 – Guest: Let me as a follow-up question: How do you approach it on the frontend? 15:24 – Panelist answers the guest’s question. 16:06 – The guest mentions Vue CLI 2 & 3. 18:31 – Chuck: Are you using the tool Istanbul? 18:36 – Guest: Yep Istanbul is the one! 18:54 – Chuck: I’ve heard some similar rumors, but can’t say. 19:02 – Panelist talks. 20:13 – Chuck: I have been working on a project and what doesn’t get test-coverage gets a candidate to get pulled-out. 20:40 – Guest: Talking about test-driven development... Guest: Have you read the original book? 21:02 – Guest: The book: “Effective Testing with RSpec 3” is updated information – check it out! The guest mentions his live stream on Friday’s. Check out the links found below! 23:57 – Panel: How is the stability with tests like Cypress with end-to-end tests? If you are testing with a login then the user has to be already created. Or what about a Twitter app – the user has to be created and not followed? How do you handle that? 24:22 – Guest: I think we are spoiled in the Rails world b/c of those... 24:53 – The guest answers the panelist’s question! 26:59 – Fresh Books! 28:07 – Guest: Does that help? 28:10 – Panel. 28:21 – Guest: I have been thinking about this, though, recently. Thinking about the contracts through the business. I have dabbled with native development and I see the cost that runs a native app. 30:21 – Panel: It’s refreshing to hear the new market’s demands. I truly haven’t seen an application that requires that. I have built some extensive applications and also very simple ones, too; the need for productivity. 31:17 – Guest mentions a talk at a conference. See here for that information! 31:43 – Guest: I have a friend who was a new developer and he really knows his stuff. He said that he didn’t know if he could be a full stack developer in the next 5-10 years. Wait a minute?! Guest: The freedom to create something that stands alone. Guest: Tom Dale is mentioned by the Guest. 33:35 – Panel: To choose Rails as a new developer (today) it’s not as easy as it was back in the day. Today you have Active Job, Action Cable and so many other components. It’s more complicated today then it was in the past. It could be overwhelming to a new developer. 35:00 – Chuck: I think a lot of that is the community’s fault and not Rails’ fault. 35:57 – Panel. 36:04 – Panel: The counter-argument could say that’s where server-less come in. 36:27 – Chuck: To some degree you can get away with it. You don’t have to worry about the infrastructure or anything else. 36:44 – Panel: Have you tried messing around with server-less functions with AWS? I have and...it’s not easy. There is not a good flow or good work flow in a server-less environment. 38:01 – Chuck: You can go to this website. It makes the setup easier b/c you are adding your Azure or AWS features. 38:30 – Panel: This topic, though, does tie back to the testing topic we were talking about earlier! 39:14 – Panel: Yeah that is why I haven’t gotten into server-less things. The Rails holistic approach is so appealing. 40:14 – Panel continues: I want to take smaller steps when it comes to technology! I want to move into things that we are laying down the tracks to make it easier travelable. That way we can consider the things we’ve learned in the past and help those in the future. 41:07 – Chuck: What are lacking then? What is the friction that is left? Seems like Cypress helped removed that but maybe not? 42:02 – Panelist mentions Cypress, Jest, Mocha, and others! 43:10 – Panel (continues): I am all about experimenting but I want to know all the reasons. What has changed and what hasn’t’ changed? 43:29 – Panel: There is an article written that talks about this topic. 43:59 – Guest mentions the video “Is TDD Dead?” (See links below.) 44:29 – Guest: I like brining thoughts together and taking his or her input and come up with my own thoughts. 46:32 – Guest (continues): The testing trophy is heavier on the top (picture of a trophy). Guest: I think the thing that draws me to unit testing is that... 47:37 – Guest: I am obsessed with testing. The guest gives a summary here! 48:15 – Chuck: We talked with Quincy Larson last week and it’s a really good take on what we are doing and what we are trying to accomplish with our tests. Check it out – it’s coming out soon! 49:05 – Panel: When you are younger into your career – the way you think about structuring your code – when you are comfortable you really don’t need that guidance. 50:00 – Guest: I would encourage folks who were new to coding to do the following... 51:36 – Guest: Think about WHY you are doing (what you are doing) and being able to articulate well what you are doing and why. 52:03 – Panel: There is no question – every time I test I am surprised how much it shapes my thinking about the code and how many bugs that I catch even in code that I thought was operating well. When you go too far though there is a fallacy there. 52:54 – Panel: Yes, testing is very important. I am a test-after-the-fact programmer. That is my self-key term. Don’t write 500-line methods b/c you won’t be able to test that. Don’t make it too abstract so have a common pattern that you will use. Have a lot of private methods that aren’t exposed to the API. 54:03 – Guest: Yes thinking about how to structure your code can be challenging at first but it gets easier. 55:58 – Chuck: I have had talks with Corey Haines about topics like this! 56:47 – Guest: Yes it can be helpful in consultancy now. 59:23 – Guest: Think about this: choosing what level to test at. 1:00:14 – Panel: It’s hard b/c it changes all the time per function or something else. There are tradeoffs with everything we do. 1:00:41 – Chuck: You are the consultant it depends doesn’t it? 1:00:51 – Picks! 1:00:55 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular Cypress Vue React VUE CLI 3 Jest.io Mocha.js GitHub: Istanbul The RSpec Book RR 068 Episode Ember CLI GitHub: Factory_Bot GitHub: VCR Big Nerd Ranch Big Nerd Ranch: Josh Justice / Team Manager The Bike Shed Keynote: Tom Dale @ EmberFest 2018 JSJ 291 Episode Serverless Article: Test-Induced Design Damage Video: Is TDD Dead? Music: Sub Conscious – Electronic / 2004 Music: Interloper / 2015 Disney Heroes: Battle Mode Google Play: Disney Heroes / Battle Mode Book Authoring Playlist Tom Dale’s Twitter Corey Haines’ Twitter Coding It Wrong Josh’s Twitter Josh’s GitHub Josh’s LinkedIn Josh’s Vimeo Video Sponsors: Sentry CacheFly Fresh Books Picks: Nate Phutureprimitive - Sub Conscious Carbon Based Lifeforms - Interloper Dave Dust collections system in Wood Shop Doctor Who - Theme Music Charles Authoring music Disney Hero Battles Josh Effecting Testing with RSpec 3 Growing Object-Oriented Software, Guided by Test XUnit Test Patterns Spectacle App Alfred App
Panel: Dave Kimura Charles Max Wood Nate Hopkins Special Guest: Josh Justice In this episode of Ruby Rogues, the panelists talk with Josh Justice who is a developer, writer, and speaker. Josh streams JavaScript and web development on Friday’s at 2:00 PM (ET) here! The panelists and the guest talk about Josh’s background and frontend testing in Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Dave, Nate, and myself are on the panel and our special guest is Josh Justice! I am developing a show about developer freedom and it’s called The DevRev. It will be streamed through YouTube, and I will record Friday afternoons. Check out Facebook, too! 2:11 – Josh: Thanks! I am happy to be here! 2:18 – Chuck: Introduce yourself, please! 2:24 – Josh: I have been a developer for about 14 years. I have used PHP and then got into Ruby and then frontend development. 2:46 – Chuck: You work for Big Nerd Ranch in Atlanta? 2:56 – Josh: Yep for the last 3-4 years! 3:15 – Chuck: Can you introduce the topic? 3:25 – The guest talks about Big Nerd Ranch and frontend development. Learn TDD is mentioned, too! Check it out here! 5:06 – Panel: How much bouncing do you do between React and Vue? 5:11 – Guest. 5:47 – Chuck: We need to get you on our podcast shows for React and Vue! It’s an approach that I am familiar with in Ruby – and Selenium what a pain! 6:16 – Guest: I’ve had a good experience with Cypress, actually! 7:47 – Guest: Panelist, can you share your experiences? 7:57 – Panel: Not bad experiences with testing, but now I am trying to minimize my use with JavaScript. 8:30 – Guest: I think there is a big push towards considering more server site rendering. 9:35 – Panel: What’s your recommendation to setup Cypress? 9:40 – Guest: Their docs are really great! They had some conference talks on how to set it up! 10:15 – Guest: Check out my talks about this topic. (Connect Tech 2018). 10:29 – Panel: I think Cypress is a pretty cool solution but one thing that left me confused is that you have to have an environment that is already stood-up and running. Is that accurate or has that changed? 11:00 – Guest: Can you clarify what you mean by a “running environment”? 11:04 – Panelist clarifies. 11:44 – Guest: Luckily for me I have something to say b/c I tried a week ago! 12:01 – Guest mentions Vue CLI 3. 14:38 – Panel: How can you test your code coverage? I want to know how much of my code coverage am I hitting? The applications are up and running, it’s not going through the files (per se), and is there anything that would indicate how good your coverage is with the Cypress test? 15:10 – Guest: Let me as a follow-up question: How do you approach it on the frontend? 15:24 – Panelist answers the guest’s question. 16:06 – The guest mentions Vue CLI 2 & 3. 18:31 – Chuck: Are you using the tool Istanbul? 18:36 – Guest: Yep Istanbul is the one! 18:54 – Chuck: I’ve heard some similar rumors, but can’t say. 19:02 – Panelist talks. 20:13 – Chuck: I have been working on a project and what doesn’t get test-coverage gets a candidate to get pulled-out. 20:40 – Guest: Talking about test-driven development... Guest: Have you read the original book? 21:02 – Guest: The book: “Effective Testing with RSpec 3” is updated information – check it out! The guest mentions his live stream on Friday’s. Check out the links found below! 23:57 – Panel: How is the stability with tests like Cypress with end-to-end tests? If you are testing with a login then the user has to be already created. Or what about a Twitter app – the user has to be created and not followed? How do you handle that? 24:22 – Guest: I think we are spoiled in the Rails world b/c of those... 24:53 – The guest answers the panelist’s question! 26:59 – Fresh Books! 28:07 – Guest: Does that help? 28:10 – Panel. 28:21 – Guest: I have been thinking about this, though, recently. Thinking about the contracts through the business. I have dabbled with native development and I see the cost that runs a native app. 30:21 – Panel: It’s refreshing to hear the new market’s demands. I truly haven’t seen an application that requires that. I have built some extensive applications and also very simple ones, too; the need for productivity. 31:17 – Guest mentions a talk at a conference. See here for that information! 31:43 – Guest: I have a friend who was a new developer and he really knows his stuff. He said that he didn’t know if he could be a full stack developer in the next 5-10 years. Wait a minute?! Guest: The freedom to create something that stands alone. Guest: Tom Dale is mentioned by the Guest. 33:35 – Panel: To choose Rails as a new developer (today) it’s not as easy as it was back in the day. Today you have Active Job, Action Cable and so many other components. It’s more complicated today then it was in the past. It could be overwhelming to a new developer. 35:00 – Chuck: I think a lot of that is the community’s fault and not Rails’ fault. 35:57 – Panel. 36:04 – Panel: The counter-argument could say that’s where server-less come in. 36:27 – Chuck: To some degree you can get away with it. You don’t have to worry about the infrastructure or anything else. 36:44 – Panel: Have you tried messing around with server-less functions with AWS? I have and...it’s not easy. There is not a good flow or good work flow in a server-less environment. 38:01 – Chuck: You can go to this website. It makes the setup easier b/c you are adding your Azure or AWS features. 38:30 – Panel: This topic, though, does tie back to the testing topic we were talking about earlier! 39:14 – Panel: Yeah that is why I haven’t gotten into server-less things. The Rails holistic approach is so appealing. 40:14 – Panel continues: I want to take smaller steps when it comes to technology! I want to move into things that we are laying down the tracks to make it easier travelable. That way we can consider the things we’ve learned in the past and help those in the future. 41:07 – Chuck: What are lacking then? What is the friction that is left? Seems like Cypress helped removed that but maybe not? 42:02 – Panelist mentions Cypress, Jest, Mocha, and others! 43:10 – Panel (continues): I am all about experimenting but I want to know all the reasons. What has changed and what hasn’t’ changed? 43:29 – Panel: There is an article written that talks about this topic. 43:59 – Guest mentions the video “Is TDD Dead?” (See links below.) 44:29 – Guest: I like brining thoughts together and taking his or her input and come up with my own thoughts. 46:32 – Guest (continues): The testing trophy is heavier on the top (picture of a trophy). Guest: I think the thing that draws me to unit testing is that... 47:37 – Guest: I am obsessed with testing. The guest gives a summary here! 48:15 – Chuck: We talked with Quincy Larson last week and it’s a really good take on what we are doing and what we are trying to accomplish with our tests. Check it out – it’s coming out soon! 49:05 – Panel: When you are younger into your career – the way you think about structuring your code – when you are comfortable you really don’t need that guidance. 50:00 – Guest: I would encourage folks who were new to coding to do the following... 51:36 – Guest: Think about WHY you are doing (what you are doing) and being able to articulate well what you are doing and why. 52:03 – Panel: There is no question – every time I test I am surprised how much it shapes my thinking about the code and how many bugs that I catch even in code that I thought was operating well. When you go too far though there is a fallacy there. 52:54 – Panel: Yes, testing is very important. I am a test-after-the-fact programmer. That is my self-key term. Don’t write 500-line methods b/c you won’t be able to test that. Don’t make it too abstract so have a common pattern that you will use. Have a lot of private methods that aren’t exposed to the API. 54:03 – Guest: Yes thinking about how to structure your code can be challenging at first but it gets easier. 55:58 – Chuck: I have had talks with Corey Haines about topics like this! 56:47 – Guest: Yes it can be helpful in consultancy now. 59:23 – Guest: Think about this: choosing what level to test at. 1:00:14 – Panel: It’s hard b/c it changes all the time per function or something else. There are tradeoffs with everything we do. 1:00:41 – Chuck: You are the consultant it depends doesn’t it? 1:00:51 – Picks! 1:00:55 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular Cypress Vue React VUE CLI 3 Jest.io Mocha.js GitHub: Istanbul The RSpec Book RR 068 Episode Ember CLI GitHub: Factory_Bot GitHub: VCR Big Nerd Ranch Big Nerd Ranch: Josh Justice / Team Manager The Bike Shed Keynote: Tom Dale @ EmberFest 2018 JSJ 291 Episode Serverless Article: Test-Induced Design Damage Video: Is TDD Dead? Music: Sub Conscious – Electronic / 2004 Music: Interloper / 2015 Disney Heroes: Battle Mode Google Play: Disney Heroes / Battle Mode Book Authoring Playlist Tom Dale’s Twitter Corey Haines’ Twitter Coding It Wrong Josh’s Twitter Josh’s GitHub Josh’s LinkedIn Josh’s Vimeo Video Sponsors: Sentry CacheFly Fresh Books Picks: Nate Phutureprimitive - Sub Conscious Carbon Based Lifeforms - Interloper Dave Dust collections system in Wood Shop Doctor Who - Theme Music Charles Authoring music Disney Hero Battles Josh Effecting Testing with RSpec 3 Growing Object-Oriented Software, Guided by Test XUnit Test Patterns Spectacle App Alfred App
Panel: AJ O’Neal Joe Eames Jesse Sanders Special Guest: Sean Hunter In this episode, the panel talks with Sean Hunter who is a software developer, speaker, rock climber, and author of “Aurelia in Action” published by Manning Publications! Today, the panelists and Sean talk about Aurelia and other frameworks. Check it out! Show Topics: 0:00 – Advertisement: KENDO UI 0:38 – Joe: Hello! Our panelists are AJ, Jesse, myself, and our special guest is Sean Hunter (from Australia)! What have you been doing with your life and what is your favorite movie? 1:45 – Guest talks about Vegemite! 2:20 – Guest: I was in the UK and started using Aurelia, which I will talk about today. I have done some talks throughout UK about Aurelia. Also, the past year moved back to Australia had a baby son and it’s been a busy year. Writing a book and being a new parent has been hard. 3:22 – Panel: Tell us the history of Aurelia, please? 3:31 – Panel: Is it like jQuery, React, Vue or what? 3:44 – Guest: Elevator pitch – Aurelia is a single-page app framework! It’s most similar to Vue out of those frameworks; also, similarities to Ember.js. 4:30 – Guest goes into detail about Aurelia. 6:15 – Panel: It sounds like convention over configuration. 6:42 – Guest: Yes that is correct. 7:21 – Panel: Sounds like there is a build-step to it. 7:39 – Guest: There is a build-step you are correct. You will use Webpack in the background. 9:57 – The guest talks about data binding among other things. 10:30 – Guest: You will have your app component and other levels, too. 10:37 – Panel: I am new to Aurelia and so I’m fresh to this. Why Aurelia over the other frameworks? Is there a CLI to help? 11:29 – Guest: Let me start with WHY Aurelia and not the other frameworks. The style that you are using when building the applications is important for your needs. In terms of bundling there is a CUI and that is a way that I prefer to start my projects. Do you want to use CSS or Webpack or...? It’s almost a wizard process! You guys have any questions about the CLI? 14:43 – Panel: Thanks! I was wondering what is actually occurring there? 15:25 – Guest: Good question. Basically it’s that Aurelia has some built-in conventions. Looking at the convention tells Aurelia to pick the Vue model by name. If I need to tell the framework more information then... 17:46 – Panel: I think that for people who are familiar with one or more framework then where on that spectrum would Aurelia fall? 18:20 – Guest: It’s not that opinionated as Ember.js. 19:09 – Panel: Talking about being opinionated – what are some good examples of the choices that you have and how that leads you down a certain path? Any more examples that you can give us? 19:38 – Guest: The main conventions are what I’ve talked about already. I can’t think of more conventions off the top of my head. There are more examples in my book. 20:02 – Panel: Your book? 20:10 – Guest: Yep. 20:13 – Panel. 20:20 – Guest. 21:58 – Panel: Why would I NOT pick Aurelia? 22:19 – Guest: If you are from a React world and you like having things contained in a single-file then Aurelia would fight you. If you want a big company backing then Aurelia isn’t for you. The guest goes into more reasons why or why not one would or wouldn’t want to use Aurelia. 24:24 – Panel: I think the best sell point is the downplay! 24:34 – Guest: Good point. What does the roadmap look like for Aurelia’s team? 25:00 – Guest: Typically, what happens in the Aurelia framework is that data binding (or router) gets pushed by the core team. They are the ones that produce the roadmap and look forward to the framework. The core team is working on the NEXT version of the framework, which is lighter, easier to use, and additional features. It’s proposed to be out for release next year. 26:36 – Advertisement – Sentry.io 27:34 – Panel: I am going to take down the CLI down and see what it does. I am looking at it and seeing how to teach someone to use it. I am using AU, new command, and it says no Aurelia found. I am stuck. 28:06 – Guest: What you would do is specify the project name that you are trying to create and that should create it for you. 28:40 – Panel. 28:45 – Panel. 28:50 – Panel: Stand up on your desk and say: does anyone know anything about computers?! 29:05 – Panelists go back-and-forth. 29:13 – Panel: What frameworks have you used in the past? 29:17 – Guest: I was using single-paged apps back in 2010. 31:10 – Panel: Tell us about the performance of Aurelia? 31:17 – Guest: I was looking at the benchmarks all the time. Last time I looked the performance was comparable. Performances can me measured in a number of different of ways. The guest talks about a dashboard screen that 20 charts or something like that. He didn’t notice any delays getting to the client. 33:29 – Panel: I heard you say the word “observables.” 33:39 – Guest answers the question. 35:30 – Guest: I am not a Redux expert, so I really can’t say. It has similar actions like Redux but the differences I really can’t say. 36:11 – Panel: We really want experts in everything! (Laughs.) 36:25 – Panelist talks about a colleagues’ talk at a conference. He says that he things are doing too much with SPAs. They have their place but we are trying to bundle 8-9 different applications but instead look at them as... What are your thoughts of having multiple SPAs? 37:17 – Guest. 39:08 – Guest: I wonder what your opinions are? What about the splitting approach? 39:22 – Panel: I haven’t looked at it, yet. I am curious, though. I have been developing in GO lately. 40:20 – Guest: I think people can go too far and making it too complex. You don’t want to make the code that complex. 40:45 – Panel: Yeah when the code is “clean” but difficult to discover that’s not good. 41:15 – Guest: I agree when you start repeating yourself then it makes it more difficult. 41:35 – Panel: Chris and I are anti-framework. We prefer to start from a fresh palette and see if a framework can fit into that fresh palette. When you start with a certain framework you are starting with certain configurations set-in-place. 42:48 – Joe: I like my frameworks and I think you are crazy! 43:05 – Panel. 43:11 – Joe: I have a love affair with all frameworks. 43:19 – Panel: I think I am somewhere in the middle. 43:49 – Panel: I don’t think frameworks are all bad but I want to say that it’s smart to not make it too complex upfront. Learn and grow. 44:28 – Guest: I think a good example of that is jQuery, right? 45:10 – Panelist talks about C++, jQuery, among other things. 45:34 – Guest: Frameworks kind of push the limits. 46:08 – Panelist talks about JavaScript, frameworks, and others. 47:04 – Panel: It seems simple to setup routes – anything to help with the lazy way to setup? 47:35 – Guest answers question. 48:37 – Panel: How do we manage complexity and how does messaging work between components? 48:54 – Guest: The simple scenario is that you can follow a simple pattern, which is (came out of Ember community) and that is...Data Down & Actions Up! 50:45 – Guest mentions that Aurelia website! 51:00 – Panel: That sounds great! Sounds like the pattern can be plugged in easily into Aurelia. 51:17 – Picks! 51:20 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Redux Webpack Elixir Ember.js Vue GO jQuery Node.js Puppeteer Cypress Utah JS 2018 – Justin McMurdie’s Talk Aurelia Sean Hunter’s Book! Sean Hunter’s Twitter Sean Hunter’s Website Sean Hunter’s GitHub Sponsors: Kendo UI Sentry CacheFly Picks: Joe React Conf. Endless Quest AJ Extreme Ownership GO Language Harry’s and Flamingo Jesse Sanders The Miracle Morning React Hooks Apple Products Sean Doesn’t Have to Be Crazy at Work Discount Code for Aurelia in Action - hunterpc (40% off Aurelia in Action, all formats) Apple Watch
Panel: AJ O’Neal Joe Eames Jesse Sanders Special Guest: Sean Hunter In this episode, the panel talks with Sean Hunter who is a software developer, speaker, rock climber, and author of “Aurelia in Action” published by Manning Publications! Today, the panelists and Sean talk about Aurelia and other frameworks. Check it out! Show Topics: 0:00 – Advertisement: KENDO UI 0:38 – Joe: Hello! Our panelists are AJ, Jesse, myself, and our special guest is Sean Hunter (from Australia)! What have you been doing with your life and what is your favorite movie? 1:45 – Guest talks about Vegemite! 2:20 – Guest: I was in the UK and started using Aurelia, which I will talk about today. I have done some talks throughout UK about Aurelia. Also, the past year moved back to Australia had a baby son and it’s been a busy year. Writing a book and being a new parent has been hard. 3:22 – Panel: Tell us the history of Aurelia, please? 3:31 – Panel: Is it like jQuery, React, Vue or what? 3:44 – Guest: Elevator pitch – Aurelia is a single-page app framework! It’s most similar to Vue out of those frameworks; also, similarities to Ember.js. 4:30 – Guest goes into detail about Aurelia. 6:15 – Panel: It sounds like convention over configuration. 6:42 – Guest: Yes that is correct. 7:21 – Panel: Sounds like there is a build-step to it. 7:39 – Guest: There is a build-step you are correct. You will use Webpack in the background. 9:57 – The guest talks about data binding among other things. 10:30 – Guest: You will have your app component and other levels, too. 10:37 – Panel: I am new to Aurelia and so I’m fresh to this. Why Aurelia over the other frameworks? Is there a CLI to help? 11:29 – Guest: Let me start with WHY Aurelia and not the other frameworks. The style that you are using when building the applications is important for your needs. In terms of bundling there is a CUI and that is a way that I prefer to start my projects. Do you want to use CSS or Webpack or...? It’s almost a wizard process! You guys have any questions about the CLI? 14:43 – Panel: Thanks! I was wondering what is actually occurring there? 15:25 – Guest: Good question. Basically it’s that Aurelia has some built-in conventions. Looking at the convention tells Aurelia to pick the Vue model by name. If I need to tell the framework more information then... 17:46 – Panel: I think that for people who are familiar with one or more framework then where on that spectrum would Aurelia fall? 18:20 – Guest: It’s not that opinionated as Ember.js. 19:09 – Panel: Talking about being opinionated – what are some good examples of the choices that you have and how that leads you down a certain path? Any more examples that you can give us? 19:38 – Guest: The main conventions are what I’ve talked about already. I can’t think of more conventions off the top of my head. There are more examples in my book. 20:02 – Panel: Your book? 20:10 – Guest: Yep. 20:13 – Panel. 20:20 – Guest. 21:58 – Panel: Why would I NOT pick Aurelia? 22:19 – Guest: If you are from a React world and you like having things contained in a single-file then Aurelia would fight you. If you want a big company backing then Aurelia isn’t for you. The guest goes into more reasons why or why not one would or wouldn’t want to use Aurelia. 24:24 – Panel: I think the best sell point is the downplay! 24:34 – Guest: Good point. What does the roadmap look like for Aurelia’s team? 25:00 – Guest: Typically, what happens in the Aurelia framework is that data binding (or router) gets pushed by the core team. They are the ones that produce the roadmap and look forward to the framework. The core team is working on the NEXT version of the framework, which is lighter, easier to use, and additional features. It’s proposed to be out for release next year. 26:36 – Advertisement – Sentry.io 27:34 – Panel: I am going to take down the CLI down and see what it does. I am looking at it and seeing how to teach someone to use it. I am using AU, new command, and it says no Aurelia found. I am stuck. 28:06 – Guest: What you would do is specify the project name that you are trying to create and that should create it for you. 28:40 – Panel. 28:45 – Panel. 28:50 – Panel: Stand up on your desk and say: does anyone know anything about computers?! 29:05 – Panelists go back-and-forth. 29:13 – Panel: What frameworks have you used in the past? 29:17 – Guest: I was using single-paged apps back in 2010. 31:10 – Panel: Tell us about the performance of Aurelia? 31:17 – Guest: I was looking at the benchmarks all the time. Last time I looked the performance was comparable. Performances can me measured in a number of different of ways. The guest talks about a dashboard screen that 20 charts or something like that. He didn’t notice any delays getting to the client. 33:29 – Panel: I heard you say the word “observables.” 33:39 – Guest answers the question. 35:30 – Guest: I am not a Redux expert, so I really can’t say. It has similar actions like Redux but the differences I really can’t say. 36:11 – Panel: We really want experts in everything! (Laughs.) 36:25 – Panelist talks about a colleagues’ talk at a conference. He says that he things are doing too much with SPAs. They have their place but we are trying to bundle 8-9 different applications but instead look at them as... What are your thoughts of having multiple SPAs? 37:17 – Guest. 39:08 – Guest: I wonder what your opinions are? What about the splitting approach? 39:22 – Panel: I haven’t looked at it, yet. I am curious, though. I have been developing in GO lately. 40:20 – Guest: I think people can go too far and making it too complex. You don’t want to make the code that complex. 40:45 – Panel: Yeah when the code is “clean” but difficult to discover that’s not good. 41:15 – Guest: I agree when you start repeating yourself then it makes it more difficult. 41:35 – Panel: Chris and I are anti-framework. We prefer to start from a fresh palette and see if a framework can fit into that fresh palette. When you start with a certain framework you are starting with certain configurations set-in-place. 42:48 – Joe: I like my frameworks and I think you are crazy! 43:05 – Panel. 43:11 – Joe: I have a love affair with all frameworks. 43:19 – Panel: I think I am somewhere in the middle. 43:49 – Panel: I don’t think frameworks are all bad but I want to say that it’s smart to not make it too complex upfront. Learn and grow. 44:28 – Guest: I think a good example of that is jQuery, right? 45:10 – Panelist talks about C++, jQuery, among other things. 45:34 – Guest: Frameworks kind of push the limits. 46:08 – Panelist talks about JavaScript, frameworks, and others. 47:04 – Panel: It seems simple to setup routes – anything to help with the lazy way to setup? 47:35 – Guest answers question. 48:37 – Panel: How do we manage complexity and how does messaging work between components? 48:54 – Guest: The simple scenario is that you can follow a simple pattern, which is (came out of Ember community) and that is...Data Down & Actions Up! 50:45 – Guest mentions that Aurelia website! 51:00 – Panel: That sounds great! Sounds like the pattern can be plugged in easily into Aurelia. 51:17 – Picks! 51:20 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Redux Webpack Elixir Ember.js Vue GO jQuery Node.js Puppeteer Cypress Utah JS 2018 – Justin McMurdie’s Talk Aurelia Sean Hunter’s Book! Sean Hunter’s Twitter Sean Hunter’s Website Sean Hunter’s GitHub Sponsors: Kendo UI Sentry CacheFly Picks: Joe React Conf. Endless Quest AJ Extreme Ownership GO Language Harry’s and Flamingo Jesse Sanders The Miracle Morning React Hooks Apple Products Sean Doesn’t Have to Be Crazy at Work Discount Code for Aurelia in Action - hunterpc (40% off Aurelia in Action, all formats) Apple Watch
Panel: Dave Kimura Charles Max Wood Nate Hopkins Special Guest: Josh Justice In this episode of Ruby Rogues, the panelists talk with Josh Justice who is a developer, writer, and speaker. Josh streams JavaScript and web development on Friday’s at 2:00 PM (ET) here! The panelists and the guest talk about Josh’s background and frontend testing in Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Dave, Nate, and myself are on the panel and our special guest is Josh Justice! I am developing a show about developer freedom and it’s called The DevRev. It will be streamed through YouTube, and I will record Friday afternoons. Check out Facebook, too! 2:11 – Josh: Thanks! I am happy to be here! 2:18 – Chuck: Introduce yourself, please! 2:24 – Josh: I have been a developer for about 14 years. I have used PHP and then got into Ruby and then frontend development. 2:46 – Chuck: You work for Big Nerd Ranch in Atlanta? 2:56 – Josh: Yep for the last 3-4 years! 3:15 – Chuck: Can you introduce the topic? 3:25 – The guest talks about Big Nerd Ranch and frontend development. Learn TDD is mentioned, too! Check it out here! 5:06 – Panel: How much bouncing do you do between React and Vue? 5:11 – Guest. 5:47 – Chuck: We need to get you on our podcast shows for React and Vue! It’s an approach that I am familiar with in Ruby – and Selenium what a pain! 6:16 – Guest: I’ve had a good experience with Cypress, actually! 7:47 – Guest: Panelist, can you share your experiences? 7:57 – Panel: Not bad experiences with testing, but now I am trying to minimize my use with JavaScript. 8:30 – Guest: I think there is a big push towards considering more server site rendering. 9:35 – Panel: What’s your recommendation to setup Cypress? 9:40 – Guest: Their docs are really great! They had some conference talks on how to set it up! 10:15 – Guest: Check out my talks about this topic. (Connect Tech 2018). 10:29 – Panel: I think Cypress is a pretty cool solution but one thing that left me confused is that you have to have an environment that is already stood-up and running. Is that accurate or has that changed? 11:00 – Guest: Can you clarify what you mean by a “running environment”? 11:04 – Panelist clarifies. 11:44 – Guest: Luckily for me I have something to say b/c I tried a week ago! 12:01 – Guest mentions Vue CLI 3. 14:38 – Panel: How can you test your code coverage? I want to know how much of my code coverage am I hitting? The applications are up and running, it’s not going through the files (per se), and is there anything that would indicate how good your coverage is with the Cypress test? 15:10 – Guest: Let me as a follow-up question: How do you approach it on the frontend? 15:24 – Panelist answers the guest’s question. 16:06 – The guest mentions Vue CLI 2 & 3. 18:31 – Chuck: Are you using the tool Istanbul? 18:36 – Guest: Yep Istanbul is the one! 18:54 – Chuck: I’ve heard some similar rumors, but can’t say. 19:02 – Panelist talks. 20:13 – Chuck: I have been working on a project and what doesn’t get test-coverage gets a candidate to get pulled-out. 20:40 – Guest: Talking about test-driven development... Guest: Have you read the original book? 21:02 – Guest: The book: “Effective Testing with RSpec 3” is updated information – check it out! The guest mentions his live stream on Friday’s. Check out the links found below! 23:57 – Panel: How is the stability with tests like Cypress with end-to-end tests? If you are testing with a login then the user has to be already created. Or what about a Twitter app – the user has to be created and not followed? How do you handle that? 24:22 – Guest: I think we are spoiled in the Rails world b/c of those... 24:53 – The guest answers the panelist’s question! 26:59 – Fresh Books! 28:07 – Guest: Does that help? 28:10 – Panel. 28:21 – Guest: I have been thinking about this, though, recently. Thinking about the contracts through the business. I have dabbled with native development and I see the cost that runs a native app. 30:21 – Panel: It’s refreshing to hear the new market’s demands. I truly haven’t seen an application that requires that. I have built some extensive applications and also very simple ones, too; the need for productivity. 31:17 – Guest mentions a talk at a conference. See here for that information! 31:43 – Guest: I have a friend who was a new developer and he really knows his stuff. He said that he didn’t know if he could be a full stack developer in the next 5-10 years. Wait a minute?! Guest: The freedom to create something that stands alone. Guest: Tom Dale is mentioned by the Guest. 33:35 – Panel: To choose Rails as a new developer (today) it’s not as easy as it was back in the day. Today you have Active Job, Action Cable and so many other components. It’s more complicated today then it was in the past. It could be overwhelming to a new developer. 35:00 – Chuck: I think a lot of that is the community’s fault and not Rails’ fault. 35:57 – Panel. 36:04 – Panel: The counter-argument could say that’s where server-less come in. 36:27 – Chuck: To some degree you can get away with it. You don’t have to worry about the infrastructure or anything else. 36:44 – Panel: Have you tried messing around with server-less functions with AWS? I have and...it’s not easy. There is not a good flow or good work flow in a server-less environment. 38:01 – Chuck: You can go to this website. It makes the setup easier b/c you are adding your Azure or AWS features. 38:30 – Panel: This topic, though, does tie back to the testing topic we were talking about earlier! 39:14 – Panel: Yeah that is why I haven’t gotten into server-less things. The Rails holistic approach is so appealing. 40:14 – Panel continues: I want to take smaller steps when it comes to technology! I want to move into things that we are laying down the tracks to make it easier travelable. That way we can consider the things we’ve learned in the past and help those in the future. 41:07 – Chuck: What are lacking then? What is the friction that is left? Seems like Cypress helped removed that but maybe not? 42:02 – Panelist mentions Cypress, Jest, Mocha, and others! 43:10 – Panel (continues): I am all about experimenting but I want to know all the reasons. What has changed and what hasn’t’ changed? 43:29 – Panel: There is an article written that talks about this topic. 43:59 – Guest mentions the video “Is TDD Dead?” (See links below.) 44:29 – Guest: I like brining thoughts together and taking his or her input and come up with my own thoughts. 46:32 – Guest (continues): The testing trophy is heavier on the top (picture of a trophy). Guest: I think the thing that draws me to unit testing is that... 47:37 – Guest: I am obsessed with testing. The guest gives a summary here! 48:15 – Chuck: We talked with Quincy Larson last week and it’s a really good take on what we are doing and what we are trying to accomplish with our tests. Check it out – it’s coming out soon! 49:05 – Panel: When you are younger into your career – the way you think about structuring your code – when you are comfortable you really don’t need that guidance. 50:00 – Guest: I would encourage folks who were new to coding to do the following... 51:36 – Guest: Think about WHY you are doing (what you are doing) and being able to articulate well what you are doing and why. 52:03 – Panel: There is no question – every time I test I am surprised how much it shapes my thinking about the code and how many bugs that I catch even in code that I thought was operating well. When you go too far though there is a fallacy there. 52:54 – Panel: Yes, testing is very important. I am a test-after-the-fact programmer. That is my self-key term. Don’t write 500-line methods b/c you won’t be able to test that. Don’t make it too abstract so have a common pattern that you will use. Have a lot of private methods that aren’t exposed to the API. 54:03 – Guest: Yes thinking about how to structure your code can be challenging at first but it gets easier. 55:58 – Chuck: I have had talks with Corey Haines about topics like this! 56:47 – Guest: Yes it can be helpful in consultancy now. 59:23 – Guest: Think about this: choosing what level to test at. 1:00:14 – Panel: It’s hard b/c it changes all the time per function or something else. There are tradeoffs with everything we do. 1:00:41 – Chuck: You are the consultant it depends doesn’t it? 1:00:51 – Picks! 1:00:55 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular Cypress Vue React VUE CLI 3 Jest.io Mocha.js GitHub: Istanbul The RSpec Book RR 068 Episode Ember CLI GitHub: Factory_Bot GitHub: VCR Big Nerd Ranch Big Nerd Ranch: Josh Justice / Team Manager The Bike Shed Keynote: Tom Dale @ EmberFest 2018 JSJ 291 Episode Serverless Article: Test-Induced Design Damage Video: Is TDD Dead? Music: Sub Conscious – Electronic / 2004 Music: Interloper / 2015 Disney Heroes: Battle Mode Google Play: Disney Heroes / Battle Mode Book Authoring Playlist Tom Dale’s Twitter Corey Haines’ Twitter Coding It Wrong Josh’s Twitter Josh’s GitHub Josh’s LinkedIn Josh’s Vimeo Video Sponsors: Sentry CacheFly Fresh Books Picks: Nate Phutureprimitive - Sub Conscious Carbon Based Lifeforms - Interloper Dave Dust collections system in Wood Shop Doctor Who - Theme Music Charles Authoring music Disney Hero Battles Josh Effecting Testing with RSpec 3 Growing Object-Oriented Software, Guided by Test XUnit Test Patterns Spectacle App Alfred App
Panel: Nader Dabit Lucas Reis Charles Max Wood Special Guests: Ben Nelson In this episode, the panelists talk with Ben Nelson who is a co-founder and CTO of Lambda School. The panelists and Ben talk about Lambda School, the pros & cons of the 4-year university program for developers, and much more. Check it out! Show Topics: 0:00 – Kendo UI 0:33 – Chuck: We have Nader, Lucas, and myself – our special gust is Ben Nelson! 0:50 – Guest: Hi! 0:54 – Chuck: Please introduce yourself. 0:58 – Guest: I love to ski and was a developer in the Utah area. 1:12 – Chuck: Let’s talk about Lambda School, but I think explaining what the school is and how you operate will help. Give us an elevator pitch for the school. 1:36 – Guest: The school is 30-weeks long and we go deep into computer fundamentals. They get exposed to multiple stacks. Since it’s 30-weeks to run we help with the finances by they start paying once they get employed. It’s online and students from U.S. and the U.K. 3:23 – Chuck: I don’t want you to badmouth DevMountain, great model, but I don’t know if it works for everyone? 3:43 – Guest: Three months part-time is really hard if you don’t have a technical background. It was a grind and hard for the students. 4:03 – Nader: Is it online or any part in-person. 4:11 – Guest: Yep totally online. 4:40 – Nader: Austen Allred is really, really good at being in the social scene. I know that he has mentioned that you are apart of...since 2017? 5:20 – Guest: Yeah you would be surprised how much Twitter has helped our school. He is the other co-founder and is a genius with social media platforms! 6:04 – Guest mentions Python, marketing, and building a following. 7:17 – Guest: We saw a lot of students who wanted to enroll but they couldn’t afford it. This gave us the idea to help with using the income share agreement. 8:06 – Nader: Yeah, that’s really cool. I didn’t know you were online only so now that makes sense. Do you have other plans for the company? 8:33 – Guest: Amazon started with books and then branched out; same thing for us. 8:56 – Chuck: Let’s talk about programming and what’s your placement rate right now? 9:05 – Guest: It fluctuates. Our incentive is we don’t get paid unless our students get employed. Our first couple classes were 83% and then later in the mid-60%s and it’s averaging around there. Our goal is 90% in 90 days. Guest continues: All boot camps aren’t the same. 10:55 – Lucas: Ben, I have a question. One thing we have a concern about is that universities are disconnected with the CURRENT market! 11:47 – Guest: We cannot compare to the 4-year system, but our strength we don’t have tenure track Ph.D. professors. Our instructors have been working hands-on for a while. They are experienced engineers. We make sure the instructors we hire are involved and passionate. We pay for them to go to conferences and we want them to be on the cutting-edge. We feel like we can compete to CS degrees b/c of the focused training that we offer. 13:16 – Chuck: Yeah, when I went to school there were only 2 professors that came from the field. 14:22 – Guest: Yeah, look at MIT. When I was studying CS in school my best professor was adjunct b/c he came from the field. I don’t know if the 4-year plan is always the best. I don’t want to shoot down higher education but you have to consider what’s best for you. 15:05 – Nader: It’s spread out across the different fields. It was a model that was created a long time ago, and isn’t always the best necessarily for computer science. Think about our field b/c things are moving so fast. 15:57 – Chuck: What you are saying, Nader, but 10 years ago this iPhone was a brand new thing, and now we are talking about a zillion different devices that you can write for. It’s crazy. That’s where we are seeing things change – the fundamentals are good – but they aren’t teaching you at that level. Hello – it’s not the ‘90s anymore! I wonder if my bias comes from boot camp grads were really motivated in the first place...and they want to make a change and make a career out of it. 17:34 – Chuck: There is value, but I don’t know if my CS major prepared me well for the job market. 17:42 – Guest: Probably you didn’t have much student loan debt being that you went to Utah. 17:58 – Nader: Why is that? 18:03 – Chuck talks about UT’s tuition and how he worked while attending college. 18:29 – Lucas: I don’t stop studying. The fundamentals aren’t bad to keep studying them. Putting you into a job first should be top priority and then dive into the fundamentals. Work knowledge is so important – after you are working for 1 year – then figure out what the fundamentals are. I think I learn better the “other way around.” 20:30 – Chuck: That’s fair. 20:45 – Guest: That’s exactly what we focus on. The guest talks about the general curriculum at the Lambda School 22:07 – Nader: That’s an interesting take on that. When you frame it that way – there is no comparison when considering the student loan debt. 22:30 – Chuck: College degrees do have a place, too. 22:39 – Chuck: Who do you see applying to the boot camps? 23:05 – Guest: It’s a mix. It’s concentrated on people who started in another career and they want to make a career change. Say they come from construction or finances and they are switching to developing. We get some college students, but it’s definitely more adult training. 24:02 – Guest: The older people who have families they are desperate and they are hungry and want to work hard. We had this guy who was making $20,000 and now he’s making $85K. Now his daughter can have his own bedroom and crying through that statement. 24:50 – Chuck: That makes sense! 24:52 – Advertisement – FRESH BOOKS! 26:02 – Guest: Look at MIT, Berkeley – the value is filtering and they are only accepting the top of the top. We don’t want to operate like that. We just have to hire new teachers and not build new buildings. We raise the bar and set the standard – and try to get everybody to that bar. We aren’t sacrificing quality but want everybody there. 27:43 – Chuck: What are the tradeoffs? 28:00 – Guest: There is an energy in-person that happens that you miss out on doing it online. There are a lot of benefits, though, doing it online. They have access to a larger audience via the web, they can re-watch videos that teachers record. 28:45 – Nader: Is there a set curriculum that everyone uses? How do you come up with the curriculum and how often does it get revamped? What are you teaching currently? 29:08 – Guest answers the question in-detail. 30:49 – Guest (continues): Heavily project-focused, too! 31:08 – Nader: What happens when they start and if they dropout? 31:22 – Guest: When we first got started we thought it was going to be high dropout rates. At first it was 40% b/c it’s hard, you can close your computer, and walk away. If a student doesn’t score 80% or higher in the week then they have to do it again. Our dropout rate is only 5-10%. In the beginning they have a grace period of 2-4 weeks where they wouldn’t owe anything. After a certain point, though, they are bound to pay per our agreements. 33:00 – Chuck: Where do people get stuck? 33:05 – Guest: Redux, React, and others! Maybe an instructor isn’t doing a good job. 34:06 – Guest: It’s intense and so we have to provide emotional support. 34:17 – Nader: I started a school year and I ran it for 1-3 years and didn’t go anywhere. We did PHP and Angular 1 and a little React Native. We never were able to get the numbers to come, and we’d only have 3-4 people. I think the problem was we were in Mississippi and scaling it is not an easy thing to do. This could be different if you were in NY. But if you are virtual that is a good take. Question: What hurdles did you have to overcome? 35:52 – Guest: There was a lot of experimentation. Dropout rates were a big one, and the other one is growth. One problem that needed to be solved first was: Is there a demand for this? Reddit helped and SubReddit. For the dropout rates we had to drive home the concept of accountability. There are tons of hands-on help from TA’s, there is accountability with attendance, and homework and grades. We want them to know that they are noticed and we are checking-in on them if they were to miss class, etc. 38:41 – Chuck: I know your instructor, Luis among others. I know they used to work for DevMountain. How do you find these folks? 39:15 – Guest: A lot of it is through the network, but now Twitter, too. 40:13 – Nader: I am always amazed with the developers that come out of UT. 40:28 – Chuck: It’s interesting and we are seeing companies coming out here. 40:50 – Guest: Something we were concerned about was placement as it relates to geography. So someone that is in North Dakota – would they get a job. The people in the rural areas almost have an easier time getting the job b/c it’s less competitive. Companies are willing to pay for relocation, which is good. 41:49 – Nader: That is spot on. 42:22 – Chuck: Instructor or Student how do they inquire to teach/attend at your school? 42:44 – Guest: We are launching in the United Kingdom and looking for a program director there! 43:00 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job Income Share Agreement’s Definition DevMountain Charles Max Wood’s Twitter Nader Dabit’s Twitter Lucas Reis’ GitHub Ben Nelson’s Talk: Rethinking Higher Education – ICERI 2016 Keynote Speech Ben Nelson’s LinkedIn Ben Nelson’s Twitter Lambda School Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Lucas Cypress Looking a Cypress as a Development Environment. Nader Egghead.io Nader’s courses on Egghead.io Suggestions for courses Charles Opportunity to help liberate developers Extreme Ownership Hiring a developer Sales Rep. for selling sponsorships Show note writer Ben Air Table
Panel: Nader Dabit Lucas Reis Charles Max Wood Special Guests: Ben Nelson In this episode, the panelists talk with Ben Nelson who is a co-founder and CTO of Lambda School. The panelists and Ben talk about Lambda School, the pros & cons of the 4-year university program for developers, and much more. Check it out! Show Topics: 0:00 – Kendo UI 0:33 – Chuck: We have Nader, Lucas, and myself – our special gust is Ben Nelson! 0:50 – Guest: Hi! 0:54 – Chuck: Please introduce yourself. 0:58 – Guest: I love to ski and was a developer in the Utah area. 1:12 – Chuck: Let’s talk about Lambda School, but I think explaining what the school is and how you operate will help. Give us an elevator pitch for the school. 1:36 – Guest: The school is 30-weeks long and we go deep into computer fundamentals. They get exposed to multiple stacks. Since it’s 30-weeks to run we help with the finances by they start paying once they get employed. It’s online and students from U.S. and the U.K. 3:23 – Chuck: I don’t want you to badmouth DevMountain, great model, but I don’t know if it works for everyone? 3:43 – Guest: Three months part-time is really hard if you don’t have a technical background. It was a grind and hard for the students. 4:03 – Nader: Is it online or any part in-person. 4:11 – Guest: Yep totally online. 4:40 – Nader: Austen Allred is really, really good at being in the social scene. I know that he has mentioned that you are apart of...since 2017? 5:20 – Guest: Yeah you would be surprised how much Twitter has helped our school. He is the other co-founder and is a genius with social media platforms! 6:04 – Guest mentions Python, marketing, and building a following. 7:17 – Guest: We saw a lot of students who wanted to enroll but they couldn’t afford it. This gave us the idea to help with using the income share agreement. 8:06 – Nader: Yeah, that’s really cool. I didn’t know you were online only so now that makes sense. Do you have other plans for the company? 8:33 – Guest: Amazon started with books and then branched out; same thing for us. 8:56 – Chuck: Let’s talk about programming and what’s your placement rate right now? 9:05 – Guest: It fluctuates. Our incentive is we don’t get paid unless our students get employed. Our first couple classes were 83% and then later in the mid-60%s and it’s averaging around there. Our goal is 90% in 90 days. Guest continues: All boot camps aren’t the same. 10:55 – Lucas: Ben, I have a question. One thing we have a concern about is that universities are disconnected with the CURRENT market! 11:47 – Guest: We cannot compare to the 4-year system, but our strength we don’t have tenure track Ph.D. professors. Our instructors have been working hands-on for a while. They are experienced engineers. We make sure the instructors we hire are involved and passionate. We pay for them to go to conferences and we want them to be on the cutting-edge. We feel like we can compete to CS degrees b/c of the focused training that we offer. 13:16 – Chuck: Yeah, when I went to school there were only 2 professors that came from the field. 14:22 – Guest: Yeah, look at MIT. When I was studying CS in school my best professor was adjunct b/c he came from the field. I don’t know if the 4-year plan is always the best. I don’t want to shoot down higher education but you have to consider what’s best for you. 15:05 – Nader: It’s spread out across the different fields. It was a model that was created a long time ago, and isn’t always the best necessarily for computer science. Think about our field b/c things are moving so fast. 15:57 – Chuck: What you are saying, Nader, but 10 years ago this iPhone was a brand new thing, and now we are talking about a zillion different devices that you can write for. It’s crazy. That’s where we are seeing things change – the fundamentals are good – but they aren’t teaching you at that level. Hello – it’s not the ‘90s anymore! I wonder if my bias comes from boot camp grads were really motivated in the first place...and they want to make a change and make a career out of it. 17:34 – Chuck: There is value, but I don’t know if my CS major prepared me well for the job market. 17:42 – Guest: Probably you didn’t have much student loan debt being that you went to Utah. 17:58 – Nader: Why is that? 18:03 – Chuck talks about UT’s tuition and how he worked while attending college. 18:29 – Lucas: I don’t stop studying. The fundamentals aren’t bad to keep studying them. Putting you into a job first should be top priority and then dive into the fundamentals. Work knowledge is so important – after you are working for 1 year – then figure out what the fundamentals are. I think I learn better the “other way around.” 20:30 – Chuck: That’s fair. 20:45 – Guest: That’s exactly what we focus on. The guest talks about the general curriculum at the Lambda School 22:07 – Nader: That’s an interesting take on that. When you frame it that way – there is no comparison when considering the student loan debt. 22:30 – Chuck: College degrees do have a place, too. 22:39 – Chuck: Who do you see applying to the boot camps? 23:05 – Guest: It’s a mix. It’s concentrated on people who started in another career and they want to make a career change. Say they come from construction or finances and they are switching to developing. We get some college students, but it’s definitely more adult training. 24:02 – Guest: The older people who have families they are desperate and they are hungry and want to work hard. We had this guy who was making $20,000 and now he’s making $85K. Now his daughter can have his own bedroom and crying through that statement. 24:50 – Chuck: That makes sense! 24:52 – Advertisement – FRESH BOOKS! 26:02 – Guest: Look at MIT, Berkeley – the value is filtering and they are only accepting the top of the top. We don’t want to operate like that. We just have to hire new teachers and not build new buildings. We raise the bar and set the standard – and try to get everybody to that bar. We aren’t sacrificing quality but want everybody there. 27:43 – Chuck: What are the tradeoffs? 28:00 – Guest: There is an energy in-person that happens that you miss out on doing it online. There are a lot of benefits, though, doing it online. They have access to a larger audience via the web, they can re-watch videos that teachers record. 28:45 – Nader: Is there a set curriculum that everyone uses? How do you come up with the curriculum and how often does it get revamped? What are you teaching currently? 29:08 – Guest answers the question in-detail. 30:49 – Guest (continues): Heavily project-focused, too! 31:08 – Nader: What happens when they start and if they dropout? 31:22 – Guest: When we first got started we thought it was going to be high dropout rates. At first it was 40% b/c it’s hard, you can close your computer, and walk away. If a student doesn’t score 80% or higher in the week then they have to do it again. Our dropout rate is only 5-10%. In the beginning they have a grace period of 2-4 weeks where they wouldn’t owe anything. After a certain point, though, they are bound to pay per our agreements. 33:00 – Chuck: Where do people get stuck? 33:05 – Guest: Redux, React, and others! Maybe an instructor isn’t doing a good job. 34:06 – Guest: It’s intense and so we have to provide emotional support. 34:17 – Nader: I started a school year and I ran it for 1-3 years and didn’t go anywhere. We did PHP and Angular 1 and a little React Native. We never were able to get the numbers to come, and we’d only have 3-4 people. I think the problem was we were in Mississippi and scaling it is not an easy thing to do. This could be different if you were in NY. But if you are virtual that is a good take. Question: What hurdles did you have to overcome? 35:52 – Guest: There was a lot of experimentation. Dropout rates were a big one, and the other one is growth. One problem that needed to be solved first was: Is there a demand for this? Reddit helped and SubReddit. For the dropout rates we had to drive home the concept of accountability. There are tons of hands-on help from TA’s, there is accountability with attendance, and homework and grades. We want them to know that they are noticed and we are checking-in on them if they were to miss class, etc. 38:41 – Chuck: I know your instructor, Luis among others. I know they used to work for DevMountain. How do you find these folks? 39:15 – Guest: A lot of it is through the network, but now Twitter, too. 40:13 – Nader: I am always amazed with the developers that come out of UT. 40:28 – Chuck: It’s interesting and we are seeing companies coming out here. 40:50 – Guest: Something we were concerned about was placement as it relates to geography. So someone that is in North Dakota – would they get a job. The people in the rural areas almost have an easier time getting the job b/c it’s less competitive. Companies are willing to pay for relocation, which is good. 41:49 – Nader: That is spot on. 42:22 – Chuck: Instructor or Student how do they inquire to teach/attend at your school? 42:44 – Guest: We are launching in the United Kingdom and looking for a program director there! 43:00 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job Income Share Agreement’s Definition DevMountain Charles Max Wood’s Twitter Nader Dabit’s Twitter Lucas Reis’ GitHub Ben Nelson’s Talk: Rethinking Higher Education – ICERI 2016 Keynote Speech Ben Nelson’s LinkedIn Ben Nelson’s Twitter Lambda School Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Lucas Cypress Looking a Cypress as a Development Environment. Nader Egghead.io Nader’s courses on Egghead.io Suggestions for courses Charles Opportunity to help liberate developers Extreme Ownership Hiring a developer Sales Rep. for selling sponsorships Show note writer Ben Air Table
Panel: Chris Fritz Joe Eames Divya Sasidharan Special Guest: Eduardo San Martin Morote In this episode, the panel talks with Eduardo San Martin Morote who is a member of the Vue.js team, a speaker, and trainer who currently resides in France. The panelists and Eduardo talk about developing games, coding, WebAssembly, C++, Vue, Angular, memory management, and much more! Check it out! Show Topics: 0:00 – Advertisement – Kendo UI 0:33 – Chris: Today’s panel is Joe Eames who organizes many different conferences. 1:09 – Joe: That was long introduction! Hi everyone! I organize an Angular conference, too; it’s very small. 1:26 – Chris: Divya is also on our panel and is an awesome speaker and conference organizer. Our special guest is Eduardo San Martin Morote! 1:55 – Chris: Actually it’s good that I get your full name. I do speak a little bit of Spanish. 2:17 – Panel goes back-and-forth. 2:33 – Guest: It was good and sounded like American Spanish. 2:47 – Chris: This is about Eduardo and not my Spanish. You used to be a game developer? 3:08 – Guest. 3:17 – Chris: You wrote a lot of C++? 3:20 – Guest: Yep! 3:22 – Chris. 3:50 – Guest: It’s optimized – you can handle 1 million requests per second – but that doesn’t happen unless it’s a huge organization. 4:24 – Chris: Can you talk about C++? Compare it to JavaScript? 4:37 – Joe talks about transferring from JavaScript to C++. 4:48 – Guest: I am an instructor, too, and teach Vue.js to people. The thing to me is the variable scoping of functions. 5:50 – Chris: Variable scoping – let’s not get into too much detail, cause we are an audio medium. 6:10 – Guest: When you look at the syntax and create classes with JavaScript...I think C++ has always had classes from the beginning. 6:58 – Chris: I used to write things back in the day with C++. I remember some features that were added later that I never got to take advantage of. I can’t remember what they were. I thought classes were one of those things. It won’t be a fruitful line of discussion cause I would be guessing. Chris: What’s different about C++ is that the types are more important? 7:57 – Guest: It’s not that it’s important it’s necessary. 8:27 – Guest: Pointers are an integer that... 8:47 – Guest continues. 8:52 – Chris: In C++ when you say memory management you are... 9:23 – Guest talks about integers, JavaScript, memory, C++, and building games! Check out this discussion here! 11:00 – Panelist talks about web assembly and asks a question. 11:23 – Guest: You will always have...the thing is that you are always getting the most out of the hardware. Computers keep getting faster and faster and people are building games with more effects. 11:53 – (Guest continues): Native video games will always be a step ahead of what web assembly can achieve. 12:50 – Have you heard of Blazor (from Microsoft)? (No.) You write it all in C#. Panel talks about Silver Light. 13:57 – Chris: What is different about web assembly compared to trans-piled to JS languages that are basically Ruby. That compile to JavaScript – you don’t have to write the JavaScript (it’s basically Ruby) and your browser will interpret the JavaScript. 14:42 – Divya: Doesn’t it run on the GPU? That it runs on the graphic card? 14:55 – Chris: It works at a very low-level. Take any language and have the same low access that languages do (low as safely as possible) in the browser b/c there is still security concerns. 15:27 – Guest. 15:43 – Chris: What if I am using Canvas? 15:54 – Guest: ...the logic of your game will be faster. 16:20 – Chris: You have more fine-grained control? And you can control the speed of operations? 16:25 – Guest: You should be able to. If you are using a program like C++... 17:02 – Chris: I don’t know this...I know that JavaScript is an interpretive language you read it from top to bottom... 17:25 – Panel: Can JavaScript read from top to bottom? I thought you had to see the entire thing? Correct me if I am wrong? 17:45 – Chris: Yeah, yeah – absolutely. 17:52 – Panel: I think that’s roughly accurate. We are way off topic! 18:21 – Chris: Would it be accurate (since we aren’t all experts), but it sounds like web assembly is that it does work on a lower level than JavaScript, so it’s possible to achieve optimizations that wouldn’t be possible with JavaScript. Is that true? 18:58 – Divya: I think you could say that...there is an article by Lin Clark that you should check out! 19:37 – Panel: See link to show notes to find article and here! 19:48 – Chris: What got you started into web development? Why no longer game development? 20:02 – Guest: When I started coding at 13-14 years old. It’s funny b/c at 15 years old I was coding and I didn’t even know that I was doing it. 22:41 – Chris: Toxic like...? 22:50 – Guest: Before I was thinking of the long hours and people were working too much, and not getting the recognition that they deserve. It was toxic, and it was a diverse environment. I realized that diversity is very important. The field is changing, but that’s why. 23:42 – Chris. 23:52 – Chris: Something else, it sounds like more familiar with C++ is TypeScript. Talk about that please? 24:17 – Guest: What got me into it were the generic types. 24:30 – Chris: What is a generic? 24:44 – Guest talks about generics. He mentions integers and other terms. 25:30 – Panel helps to clarify about generics, too. 27:08 – Panel: I got into generics when... Panel: Did you get into generics around the same time as C++? 27:27 – Guest. 28:00 – Panel: Where I see generics being used is with RJS. 28:33 – Advertisement – Get A Coder Job! 29:15 – Chris: What is the point? 29:19 – Guest: I think there are many points of view with this. When I build my libraries... 31:37 – Chris: You said that in VS code but I can get that in JavaScript. What is the extra advantage of using TypeScript on top of that? 32:00 – Guest. 32:14 – Chris: Let’s say I ignore the auto-completion, I type quickly – would TypeScript give me a warning? 32:31 – Guest: Yes that is true. If you use it with JavaScript you probably won’t have an error. 33:05 – Chris: A compile time... You mentioned that you could enable some of these checks in JavaScript. How do you do that? Say you have an editor like VS Code, but can actually when there is a potential error? 33:47 – Guest: For a project you have to create a... 34:20 – Chris asks a question. 34:28 – Guest: Yes, I think it does. Pretty sure it does. 34:37 – Chris and Guest go back-and-forth. 35:05 – Chris: See Show Notes for TS Config. 35:10 – Panel. 35:53 – Chris: If they choose not to use TypeScript what are the downsides? 36:05 – Panel talks about his experience and why people might not use TypeScript. He also mentioned CoffeeScript, C#, and JavaScript. He gives an analogy of riding a motorcycle and a truck. 38:04 – Panelist continues. He says that people love the freedom of JavaScript. 39:23 – Chris: If most of your bugs aren’t being caught by... 40:00 – Panel: Something that looks and sees and fits super well doesn’t mean that it’s a good idea. A big project is totally different. When you dip your toe in the water it might be more overhead that you don’t’ need. You have to think about the smaller / larger cases. I think that’s why Vue is getting a lot of popularity. 41:15 – Chris: I don’t think I have found anyone coming from JavaScript that say that TypeScript is not worth it. 41:41 – Guest: I like TypeScript I don’t like writing applications in TypeScript. I like writing my libraries somewhere else. The flexibility that you have in JavaScript helps a lot. I don’t like my components to be typed. I do like having... 42:27 – Guest continues. 43:35 – Chris: Why is it different bad or different good? 43:40 – Guest: It’s bad. 43:53 – Chris: What hurts your development? 44:00 – Guest: You get typing errors. The guest gives a specific example. 45:11 – Chris: It sounds like with applications you are doing more proto typing and changing requirements. Making the types really strict and specific can really hurt you? 45:39 – Guest: That’s better. 45:44 – Chris asks another question. 46:00 – Panel: That’s mostly true. 46:13 – Chris: Types can make some refractors easier, but overall a lot of refractors are going to take longer with TypeScript. At least with your application - say it’s organized in both cases. 46:55 – Chris: One more thing about TypeScript – some people (if not coming from C# or C++) I have found that people are spending a lot of time (making sure the typing is working really well) rather than writing unit tests and stuff like that. There is an opportunity cost there. Try TypeScript – it might be for you! 48:10 – Panel: As the team grows so do the benefits! 48:20 – Chris: Anything else? Where can people find you? 48:24 – Guest: I am giving a workshop in Toronto in November! 48:54 – Guest: Twitter! 49:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React JavaScript C# C++ C++ Programming / Memory Management Angular Blazor JavaScript DevChat TV Graph QL WebAssembly VuePress HACKS TypeScript: Generics Generic Types TypeScript: TS Config.json VS CODE CoffeeScript Opinion – “In Praise of Mediocrity” by Tim Wu GitHub: Vue-Cli-Plugin_Electron-Builder Eduardo’s GitHub Eduardo’s Twitter Eduardo’s Code Mentor Eduardo’s Medium Eduardo’s Trello Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe Framework Summit Videos on Youtube - Coming soon. Divya Lin Clark Cartoons In Praise of Mediocrity Chris Vue CLI Plugins Electron Builder Read nooks Eduardo Remote work due to traveling
Panel: Chris Fritz Joe Eames Divya Sasidharan Special Guest: Eduardo San Martin Morote In this episode, the panel talks with Eduardo San Martin Morote who is a member of the Vue.js team, a speaker, and trainer who currently resides in France. The panelists and Eduardo talk about developing games, coding, WebAssembly, C++, Vue, Angular, memory management, and much more! Check it out! Show Topics: 0:00 – Advertisement – Kendo UI 0:33 – Chris: Today’s panel is Joe Eames who organizes many different conferences. 1:09 – Joe: That was long introduction! Hi everyone! I organize an Angular conference, too; it’s very small. 1:26 – Chris: Divya is also on our panel and is an awesome speaker and conference organizer. Our special guest is Eduardo San Martin Morote! 1:55 – Chris: Actually it’s good that I get your full name. I do speak a little bit of Spanish. 2:17 – Panel goes back-and-forth. 2:33 – Guest: It was good and sounded like American Spanish. 2:47 – Chris: This is about Eduardo and not my Spanish. You used to be a game developer? 3:08 – Guest. 3:17 – Chris: You wrote a lot of C++? 3:20 – Guest: Yep! 3:22 – Chris. 3:50 – Guest: It’s optimized – you can handle 1 million requests per second – but that doesn’t happen unless it’s a huge organization. 4:24 – Chris: Can you talk about C++? Compare it to JavaScript? 4:37 – Joe talks about transferring from JavaScript to C++. 4:48 – Guest: I am an instructor, too, and teach Vue.js to people. The thing to me is the variable scoping of functions. 5:50 – Chris: Variable scoping – let’s not get into too much detail, cause we are an audio medium. 6:10 – Guest: When you look at the syntax and create classes with JavaScript...I think C++ has always had classes from the beginning. 6:58 – Chris: I used to write things back in the day with C++. I remember some features that were added later that I never got to take advantage of. I can’t remember what they were. I thought classes were one of those things. It won’t be a fruitful line of discussion cause I would be guessing. Chris: What’s different about C++ is that the types are more important? 7:57 – Guest: It’s not that it’s important it’s necessary. 8:27 – Guest: Pointers are an integer that... 8:47 – Guest continues. 8:52 – Chris: In C++ when you say memory management you are... 9:23 – Guest talks about integers, JavaScript, memory, C++, and building games! Check out this discussion here! 11:00 – Panelist talks about web assembly and asks a question. 11:23 – Guest: You will always have...the thing is that you are always getting the most out of the hardware. Computers keep getting faster and faster and people are building games with more effects. 11:53 – (Guest continues): Native video games will always be a step ahead of what web assembly can achieve. 12:50 – Have you heard of Blazor (from Microsoft)? (No.) You write it all in C#. Panel talks about Silver Light. 13:57 – Chris: What is different about web assembly compared to trans-piled to JS languages that are basically Ruby. That compile to JavaScript – you don’t have to write the JavaScript (it’s basically Ruby) and your browser will interpret the JavaScript. 14:42 – Divya: Doesn’t it run on the GPU? That it runs on the graphic card? 14:55 – Chris: It works at a very low-level. Take any language and have the same low access that languages do (low as safely as possible) in the browser b/c there is still security concerns. 15:27 – Guest. 15:43 – Chris: What if I am using Canvas? 15:54 – Guest: ...the logic of your game will be faster. 16:20 – Chris: You have more fine-grained control? And you can control the speed of operations? 16:25 – Guest: You should be able to. If you are using a program like C++... 17:02 – Chris: I don’t know this...I know that JavaScript is an interpretive language you read it from top to bottom... 17:25 – Panel: Can JavaScript read from top to bottom? I thought you had to see the entire thing? Correct me if I am wrong? 17:45 – Chris: Yeah, yeah – absolutely. 17:52 – Panel: I think that’s roughly accurate. We are way off topic! 18:21 – Chris: Would it be accurate (since we aren’t all experts), but it sounds like web assembly is that it does work on a lower level than JavaScript, so it’s possible to achieve optimizations that wouldn’t be possible with JavaScript. Is that true? 18:58 – Divya: I think you could say that...there is an article by Lin Clark that you should check out! 19:37 – Panel: See link to show notes to find article and here! 19:48 – Chris: What got you started into web development? Why no longer game development? 20:02 – Guest: When I started coding at 13-14 years old. It’s funny b/c at 15 years old I was coding and I didn’t even know that I was doing it. 22:41 – Chris: Toxic like...? 22:50 – Guest: Before I was thinking of the long hours and people were working too much, and not getting the recognition that they deserve. It was toxic, and it was a diverse environment. I realized that diversity is very important. The field is changing, but that’s why. 23:42 – Chris. 23:52 – Chris: Something else, it sounds like more familiar with C++ is TypeScript. Talk about that please? 24:17 – Guest: What got me into it were the generic types. 24:30 – Chris: What is a generic? 24:44 – Guest talks about generics. He mentions integers and other terms. 25:30 – Panel helps to clarify about generics, too. 27:08 – Panel: I got into generics when... Panel: Did you get into generics around the same time as C++? 27:27 – Guest. 28:00 – Panel: Where I see generics being used is with RJS. 28:33 – Advertisement – Get A Coder Job! 29:15 – Chris: What is the point? 29:19 – Guest: I think there are many points of view with this. When I build my libraries... 31:37 – Chris: You said that in VS code but I can get that in JavaScript. What is the extra advantage of using TypeScript on top of that? 32:00 – Guest. 32:14 – Chris: Let’s say I ignore the auto-completion, I type quickly – would TypeScript give me a warning? 32:31 – Guest: Yes that is true. If you use it with JavaScript you probably won’t have an error. 33:05 – Chris: A compile time... You mentioned that you could enable some of these checks in JavaScript. How do you do that? Say you have an editor like VS Code, but can actually when there is a potential error? 33:47 – Guest: For a project you have to create a... 34:20 – Chris asks a question. 34:28 – Guest: Yes, I think it does. Pretty sure it does. 34:37 – Chris and Guest go back-and-forth. 35:05 – Chris: See Show Notes for TS Config. 35:10 – Panel. 35:53 – Chris: If they choose not to use TypeScript what are the downsides? 36:05 – Panel talks about his experience and why people might not use TypeScript. He also mentioned CoffeeScript, C#, and JavaScript. He gives an analogy of riding a motorcycle and a truck. 38:04 – Panelist continues. He says that people love the freedom of JavaScript. 39:23 – Chris: If most of your bugs aren’t being caught by... 40:00 – Panel: Something that looks and sees and fits super well doesn’t mean that it’s a good idea. A big project is totally different. When you dip your toe in the water it might be more overhead that you don’t’ need. You have to think about the smaller / larger cases. I think that’s why Vue is getting a lot of popularity. 41:15 – Chris: I don’t think I have found anyone coming from JavaScript that say that TypeScript is not worth it. 41:41 – Guest: I like TypeScript I don’t like writing applications in TypeScript. I like writing my libraries somewhere else. The flexibility that you have in JavaScript helps a lot. I don’t like my components to be typed. I do like having... 42:27 – Guest continues. 43:35 – Chris: Why is it different bad or different good? 43:40 – Guest: It’s bad. 43:53 – Chris: What hurts your development? 44:00 – Guest: You get typing errors. The guest gives a specific example. 45:11 – Chris: It sounds like with applications you are doing more proto typing and changing requirements. Making the types really strict and specific can really hurt you? 45:39 – Guest: That’s better. 45:44 – Chris asks another question. 46:00 – Panel: That’s mostly true. 46:13 – Chris: Types can make some refractors easier, but overall a lot of refractors are going to take longer with TypeScript. At least with your application - say it’s organized in both cases. 46:55 – Chris: One more thing about TypeScript – some people (if not coming from C# or C++) I have found that people are spending a lot of time (making sure the typing is working really well) rather than writing unit tests and stuff like that. There is an opportunity cost there. Try TypeScript – it might be for you! 48:10 – Panel: As the team grows so do the benefits! 48:20 – Chris: Anything else? Where can people find you? 48:24 – Guest: I am giving a workshop in Toronto in November! 48:54 – Guest: Twitter! 49:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React JavaScript C# C++ C++ Programming / Memory Management Angular Blazor JavaScript DevChat TV Graph QL WebAssembly VuePress HACKS TypeScript: Generics Generic Types TypeScript: TS Config.json VS CODE CoffeeScript Opinion – “In Praise of Mediocrity” by Tim Wu GitHub: Vue-Cli-Plugin_Electron-Builder Eduardo’s GitHub Eduardo’s Twitter Eduardo’s Code Mentor Eduardo’s Medium Eduardo’s Trello Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe Framework Summit Videos on Youtube - Coming soon. Divya Lin Clark Cartoons In Praise of Mediocrity Chris Vue CLI Plugins Electron Builder Read nooks Eduardo Remote work due to traveling
Panel: Charles Max Wood Guest: Chris McKnight This week on My JavaScript Story, Charles speaks with Chris McKnight who is a software developer who knows Angular, Ruby, Node.js, and iOS. He went to college at Louisiana State University and graduated with a computer science degree from LSU. They talk about Chris’ background, past/current projects, among other things. Check out today’s episode to hear the panel talk about JavaScript, Angular, C and C++, Node, React, and much more! In particular, we dive pretty deep on: 0:00 – Advertisement: Get A Coder Job! 1:12 – Chuck: Hello! Introduce yourself, please! 1:15 – Guest: I am a software engineer outside of Nashville, Tennessee. I work for a medium consultancy company. I know JavaScript, Angular, NativeScript, and JS, too. 1:41 – Chuck: Cool! Tell us your story and how you got into programming? 2:00 – Guest: I was a really big nerd in high school and grew up in Louisiana, USA. There was one other person in the school that knew what I was talking about. I was learning C++ and Visual Studio in 2003. That was really back in the day and Microsoft Foundation class was a thing. I moved onto PHP and started working for a company in Baton Rouge after graduating college. I have a computer science degree with a secondary discipline in mathematics. I graduated from LSU and got a job offer before I graduated. Doing some part-time work for them b/c they were swamped. I was writing PHP and they said that they used jQuery a lot. 4:47 – Chuck: You got started and you said you used C and C++, why those languages? 5:05 – Guest: I did a little bit of Java, but it was the “new kid on the block.” I wanted to get into a program that was user-friendlier. 6:21 – Chuck: I took C and C++ classes in college. Eventually I did Ruby on Rails. I totally understand why you went that way. 6:44 – Guest: I picked-up Rails, because a company (that I worked for at the time) used it. I usually reached for jQuery among other options. 7:31 – Chuck: When did you start taking JavaScript seriously? 7:40 – Guest: 2012-2013. Frustrations of not using JavaScript as good as I could. For jQuery you have to call when you have an issue. Then you run into all of these bugs, and... 9:18 – Chuck: It sounds like it was more out of necessity. 9:30 – Guest: Yep, exactly. Those pain points have been reduced b/c I have been using Type Script and Angular and now version 6 and version 7. You try to call a number method on a string and vice versa, and app development time. 10:03 – Chuck: ...it has a process running with it. 10:13 – Guest: Catching a lot of those easy mistakes (bugs) and it’s a 5-10 minute fix. It takes a lot of that away. Sometimes you can say: I want to ignore it. Or it doesn’t give you runtime guarantees. Some other libraries out there have been on the forefront of fixing those problems. REST TYPE is an example of that. 11:39 – Chuck: When I talk to people about JavaScript a lot of times I get basically that they are saying: I started doing more things in Node or React – I fell in love with the language. Your reasons for starting JavaScript are because “I hated running into these problems.” Did you start loving to work in JavaScript? 12:11 – Guest: I did start loving it but it took a while. I could write a short amount of code and then at the end I get a result. Another thing that bothers me is FILTER. What does it return? It’s actually FIND and FIND INDEX and you use the pattern of filter and run this expression and give me index zero. 14:16 – Chuck: What work have you done that you are proud of? 14:20 – Guest: I started a new job last month; beforehand I worked at a mortgage company. I was proud of the Angular application and applications that I worked on. 16:55 – Chuck: How did you get into Angular? 17:00 – Guest: Interesting story. October of 2016 – at this time I was all against Angular. However someone came to me and said we have to... At the time I wasn’t impressed with the language. I learned about Angular at the time, though, and learned through Egghead. I learned a lot in 2 days, and I got pretty decent at it. I was writing Angular applications pretty quickly, and it made sense to me. 20:53 – Chuck: I am a fan of the CLI b/c that’s what we have in Rails. It’s really nice. What are you working on these days? 21:13 – Guest: Less on Angular b/c of the new job. I will do Angular on my free time. I work on Angular at nighttime. I build some things in React these past few weeks. 23:07 – Chuck: Any part of your experience that could help people? 23:17 – Guest: Learn what’s happening under the hood of libraries such as jQuery. Explore and find resources to help you. Keep learning and keep at it. Tools are so god now – such as Prettier and Lint – they will tell me “you don’t want to do this.” Use the tooling and learn the fundamentals. Also, use Babel! Those are my tips of advice. 25:55 – Chuck: That’s solid. Yes, the fundamentals and the poly-fills will fill in the gaps. So now it’s: what do I want to stack on top of this? Once you know the fundamentals. 26:55 – Guest: Learn what the frameworks and libraries are doing. Don’t get overwhelmed. That’s my advice. 28:16 – Chuck: Where can people find you? 28:24 – Guest: GitHub and Twitter. I’ve been working on a website, but not ready, yet. 29:08 – Chuck: Picks! 29:15 – Advertisement – Fresh Books! 30-Day Trial! 35:45 – Cache Fly Links: React Angular Vue.js JavaScript Ember Elm jQuery Node Find and Find Index NativeScript Lint Babel Prettier Christopher’s GitHub Christopher’s Twitter Sponsors: Cache Fly Get A Coder Job Fresh Books Picks: Chris Angular Explorer VS Code Finance – Staying out of Debt – Swish App Chuck Discord DomiNations
Panel: Charles Max Wood Guest: Chris McKnight This week on My JavaScript Story, Charles speaks with Chris McKnight who is a software developer who knows Angular, Ruby, Node.js, and iOS. He went to college at Louisiana State University and graduated with a computer science degree from LSU. They talk about Chris’ background, past/current projects, among other things. Check out today’s episode to hear the panel talk about JavaScript, Angular, C and C++, Node, React, and much more! In particular, we dive pretty deep on: 0:00 – Advertisement: Get A Coder Job! 1:12 – Chuck: Hello! Introduce yourself, please! 1:15 – Guest: I am a software engineer outside of Nashville, Tennessee. I work for a medium consultancy company. I know JavaScript, Angular, NativeScript, and JS, too. 1:41 – Chuck: Cool! Tell us your story and how you got into programming? 2:00 – Guest: I was a really big nerd in high school and grew up in Louisiana, USA. There was one other person in the school that knew what I was talking about. I was learning C++ and Visual Studio in 2003. That was really back in the day and Microsoft Foundation class was a thing. I moved onto PHP and started working for a company in Baton Rouge after graduating college. I have a computer science degree with a secondary discipline in mathematics. I graduated from LSU and got a job offer before I graduated. Doing some part-time work for them b/c they were swamped. I was writing PHP and they said that they used jQuery a lot. 4:47 – Chuck: You got started and you said you used C and C++, why those languages? 5:05 – Guest: I did a little bit of Java, but it was the “new kid on the block.” I wanted to get into a program that was user-friendlier. 6:21 – Chuck: I took C and C++ classes in college. Eventually I did Ruby on Rails. I totally understand why you went that way. 6:44 – Guest: I picked-up Rails, because a company (that I worked for at the time) used it. I usually reached for jQuery among other options. 7:31 – Chuck: When did you start taking JavaScript seriously? 7:40 – Guest: 2012-2013. Frustrations of not using JavaScript as good as I could. For jQuery you have to call when you have an issue. Then you run into all of these bugs, and... 9:18 – Chuck: It sounds like it was more out of necessity. 9:30 – Guest: Yep, exactly. Those pain points have been reduced b/c I have been using Type Script and Angular and now version 6 and version 7. You try to call a number method on a string and vice versa, and app development time. 10:03 – Chuck: ...it has a process running with it. 10:13 – Guest: Catching a lot of those easy mistakes (bugs) and it’s a 5-10 minute fix. It takes a lot of that away. Sometimes you can say: I want to ignore it. Or it doesn’t give you runtime guarantees. Some other libraries out there have been on the forefront of fixing those problems. REST TYPE is an example of that. 11:39 – Chuck: When I talk to people about JavaScript a lot of times I get basically that they are saying: I started doing more things in Node or React – I fell in love with the language. Your reasons for starting JavaScript are because “I hated running into these problems.” Did you start loving to work in JavaScript? 12:11 – Guest: I did start loving it but it took a while. I could write a short amount of code and then at the end I get a result. Another thing that bothers me is FILTER. What does it return? It’s actually FIND and FIND INDEX and you use the pattern of filter and run this expression and give me index zero. 14:16 – Chuck: What work have you done that you are proud of? 14:20 – Guest: I started a new job last month; beforehand I worked at a mortgage company. I was proud of the Angular application and applications that I worked on. 16:55 – Chuck: How did you get into Angular? 17:00 – Guest: Interesting story. October of 2016 – at this time I was all against Angular. However someone came to me and said we have to... At the time I wasn’t impressed with the language. I learned about Angular at the time, though, and learned through Egghead. I learned a lot in 2 days, and I got pretty decent at it. I was writing Angular applications pretty quickly, and it made sense to me. 20:53 – Chuck: I am a fan of the CLI b/c that’s what we have in Rails. It’s really nice. What are you working on these days? 21:13 – Guest: Less on Angular b/c of the new job. I will do Angular on my free time. I work on Angular at nighttime. I build some things in React these past few weeks. 23:07 – Chuck: Any part of your experience that could help people? 23:17 – Guest: Learn what’s happening under the hood of libraries such as jQuery. Explore and find resources to help you. Keep learning and keep at it. Tools are so god now – such as Prettier and Lint – they will tell me “you don’t want to do this.” Use the tooling and learn the fundamentals. Also, use Babel! Those are my tips of advice. 25:55 – Chuck: That’s solid. Yes, the fundamentals and the poly-fills will fill in the gaps. So now it’s: what do I want to stack on top of this? Once you know the fundamentals. 26:55 – Guest: Learn what the frameworks and libraries are doing. Don’t get overwhelmed. That’s my advice. 28:16 – Chuck: Where can people find you? 28:24 – Guest: GitHub and Twitter. I’ve been working on a website, but not ready, yet. 29:08 – Chuck: Picks! 29:15 – Advertisement – Fresh Books! 30-Day Trial! 35:45 – Cache Fly Links: React Angular Vue.js JavaScript Ember Elm jQuery Node Find and Find Index NativeScript Lint Babel Prettier Christopher’s GitHub Christopher’s Twitter Sponsors: Cache Fly Get A Coder Job Fresh Books Picks: Chris Angular Explorer VS Code Finance – Staying out of Debt – Swish App Chuck Discord DomiNations
Panel: Charles Max Wood Guest: Chris McKnight This week on My JavaScript Story, Charles speaks with Chris McKnight who is a software developer who knows Angular, Ruby, Node.js, and iOS. He went to college at Louisiana State University and graduated with a computer science degree from LSU. They talk about Chris’ background, past/current projects, among other things. Check out today’s episode to hear the panel talk about JavaScript, Angular, C and C++, Node, React, and much more! In particular, we dive pretty deep on: 0:00 – Advertisement: Get A Coder Job! 1:12 – Chuck: Hello! Introduce yourself, please! 1:15 – Guest: I am a software engineer outside of Nashville, Tennessee. I work for a medium consultancy company. I know JavaScript, Angular, NativeScript, and JS, too. 1:41 – Chuck: Cool! Tell us your story and how you got into programming? 2:00 – Guest: I was a really big nerd in high school and grew up in Louisiana, USA. There was one other person in the school that knew what I was talking about. I was learning C++ and Visual Studio in 2003. That was really back in the day and Microsoft Foundation class was a thing. I moved onto PHP and started working for a company in Baton Rouge after graduating college. I have a computer science degree with a secondary discipline in mathematics. I graduated from LSU and got a job offer before I graduated. Doing some part-time work for them b/c they were swamped. I was writing PHP and they said that they used jQuery a lot. 4:47 – Chuck: You got started and you said you used C and C++, why those languages? 5:05 – Guest: I did a little bit of Java, but it was the “new kid on the block.” I wanted to get into a program that was user-friendlier. 6:21 – Chuck: I took C and C++ classes in college. Eventually I did Ruby on Rails. I totally understand why you went that way. 6:44 – Guest: I picked-up Rails, because a company (that I worked for at the time) used it. I usually reached for jQuery among other options. 7:31 – Chuck: When did you start taking JavaScript seriously? 7:40 – Guest: 2012-2013. Frustrations of not using JavaScript as good as I could. For jQuery you have to call when you have an issue. Then you run into all of these bugs, and... 9:18 – Chuck: It sounds like it was more out of necessity. 9:30 – Guest: Yep, exactly. Those pain points have been reduced b/c I have been using Type Script and Angular and now version 6 and version 7. You try to call a number method on a string and vice versa, and app development time. 10:03 – Chuck: ...it has a process running with it. 10:13 – Guest: Catching a lot of those easy mistakes (bugs) and it’s a 5-10 minute fix. It takes a lot of that away. Sometimes you can say: I want to ignore it. Or it doesn’t give you runtime guarantees. Some other libraries out there have been on the forefront of fixing those problems. REST TYPE is an example of that. 11:39 – Chuck: When I talk to people about JavaScript a lot of times I get basically that they are saying: I started doing more things in Node or React – I fell in love with the language. Your reasons for starting JavaScript are because “I hated running into these problems.” Did you start loving to work in JavaScript? 12:11 – Guest: I did start loving it but it took a while. I could write a short amount of code and then at the end I get a result. Another thing that bothers me is FILTER. What does it return? It’s actually FIND and FIND INDEX and you use the pattern of filter and run this expression and give me index zero. 14:16 – Chuck: What work have you done that you are proud of? 14:20 – Guest: I started a new job last month; beforehand I worked at a mortgage company. I was proud of the Angular application and applications that I worked on. 16:55 – Chuck: How did you get into Angular? 17:00 – Guest: Interesting story. October of 2016 – at this time I was all against Angular. However someone came to me and said we have to... At the time I wasn’t impressed with the language. I learned about Angular at the time, though, and learned through Egghead. I learned a lot in 2 days, and I got pretty decent at it. I was writing Angular applications pretty quickly, and it made sense to me. 20:53 – Chuck: I am a fan of the CLI b/c that’s what we have in Rails. It’s really nice. What are you working on these days? 21:13 – Guest: Less on Angular b/c of the new job. I will do Angular on my free time. I work on Angular at nighttime. I build some things in React these past few weeks. 23:07 – Chuck: Any part of your experience that could help people? 23:17 – Guest: Learn what’s happening under the hood of libraries such as jQuery. Explore and find resources to help you. Keep learning and keep at it. Tools are so god now – such as Prettier and Lint – they will tell me “you don’t want to do this.” Use the tooling and learn the fundamentals. Also, use Babel! Those are my tips of advice. 25:55 – Chuck: That’s solid. Yes, the fundamentals and the poly-fills will fill in the gaps. So now it’s: what do I want to stack on top of this? Once you know the fundamentals. 26:55 – Guest: Learn what the frameworks and libraries are doing. Don’t get overwhelmed. That’s my advice. 28:16 – Chuck: Where can people find you? 28:24 – Guest: GitHub and Twitter. I’ve been working on a website, but not ready, yet. 29:08 – Chuck: Picks! 29:15 – Advertisement – Fresh Books! 30-Day Trial! 35:45 – Cache Fly Links: React Angular Vue.js JavaScript Ember Elm jQuery Node Find and Find Index NativeScript Lint Babel Prettier Christopher’s GitHub Christopher’s Twitter Sponsors: Cache Fly Get A Coder Job Fresh Books Picks: Chris Angular Explorer VS Code Finance – Staying out of Debt – Swish App Chuck Discord DomiNations
Panel: Chris Fritz Eric Hatchet Divya Sasidharan Charles Max Wood Special Guest: Benjamin Hong In this episode, the panel talks with Benjamin Hong who is a Senior Fullstack Engineer at GitLab, Inc. who currently resides in the Washington D.C. metro area. Ben and the panel talk about Politico and the current projects that Ben is working on. The panelists talk about topics, such as Vue, Vuex, VuePress, Nuxt, among others. Check out today’s episode! Show Topics: 0:00 – Advertisement – Kendo UI 0:32 – Panel: Hi! Welcome – our panel today is live at Park City, UT. 1:34 – Benjamin introduces himself. 1:41 – Panel: Politico is a well trafficked website and it’s well known. What are your thoughts about working on a well trafficked website? 2:22 – Guest. 2:44 – Panel: Why did you settle on Vue? 2:50 – Guest: ...I came onto the team and was passionate about helping. We built out the component types. I thought Vue was better suited for the team. 3:36 – Panel: That’s a large team – that’s a lot of people 3:45 – Guest: Yeah, at one time I was writing everything. A lot of people on the team right now didn’t know a lot of JavaScript – but having Vue helps everyone to move the project forward. 4:29 – Panel: They can write just HTML, etc. 4:38 – Guest: Yep, exactly. It helps with communication. 4:55 – Panel asks a question. 5:00 – Guest: I use an event bust. 5:20 – Chuck: Did you have to move from an event bust to Vuex and what was that like? 5:30 – Guest: We had to move into module-esque anyways. 5:42 – Panel: You probably have Vuex with modules and...? 5:54 – Guest: We are using your enterprise broiler plate! 6:05 – Panel: Yeah, every team uses their own patterns. What files would I see used within your team? 6:16 – Guest answers the question. 6:55 – Panel asks a question. 7:01 – Guest: We can keep with the recommended packages fairly well! 7:21 – Panel. 7:26 – Guest: Funny enough at London...we are starting to get a lot with our co-coverage. We have a hard time balancing with unit tests and...eventually we want to look at Cypress. 8:12 – Panel. 8:15 – Guest. 8:19 – Chuck. 8:38 – Panel: I always encourage people to test the unit tests. 9:00 – Chuck: As you adopted Vue what was it like to get buy-in from management. Usually they have a strong backend with Rails, and someone comes in and says let’s use X. How do you sell them on: we are going to use this new technology. 9:30 – Guest: We could really use the user-experience better, and also to offload things from the backend developers. Our desire was to control more things like animation and to specialize those things. That was my selling point. 10:32 – Chuck: I tend to do both on the apps that I’m working on. I told Chris that I was going to switch a lot of things to Vue – some of the things you said I am not interested in the backend b/c it’s too painful. 11:01 – Panel. 11:08 – Chuck: There are things that are really, really good on the backend, but... 11:18 – Panel. 11:24 – Panel: You get the benefits of rendering... 11:43 – Chuck: What are your challenges into Vue? 11:50 – Guest: It’s definitely the scale, because we were a team of 5 and now we are a team of 15. Also, the different time changes b/c we have some people who live in India. Getting that workflow and we are looking at STORYBOOK to help with that. 12:30 – Chuck: Every person you add doubles the complexity of the group. 12:40 – Panel: I think that is conservative! 12:49 – Chuck. 12:56 – Panel: I get to see Chuck in person so this is different! 13:09 – Panel: Challenge accepted! 13:18 – Panel: This is the roast! 13:25 – Panel: Are you working, Benjamin, on a component library? Are you working on that alongside your current project? How do you manage that/ 13:38 – Guest: Unfortunately, we have a lot of deadlines and everything is running in parallel! 14:00 – Panel: How do you implement expectations throughout your team? 14:13 – Panel. 14:16 – Guest: It’s for everyone to understand their own expectations and the team’s expectations. I have to be able to parse it out w/o giving them too much guidance. 15:20 – Panel. 15:25 – Guest: Yep! 15:30 – Panel: ...having to edit the same files and the same lines... 15:36 – Guest: We have been able to keep those in their own lanes! 15:44 – Panel: Yeah that’s no fun – I’ve been there! 15:53 – Chuck: You are working in the development branch – and then their thing breaks my thing, etc. 16:08 – Panel: You are doing dimensional travel! It’s almost like reorganizing a complete novel. 16:30 – Guest: You don’t want your work to drag on too long b/c you don’t want to poorly affect the other team members. 16:53 – Panel: Does that mean you use internal docs to help with the workflow? 17:03 – Guest: Yes, we use the common team board. 17:30 – Panel asks a question. 17:39 – Guest: Yes, that’s a challenge. I have setup an internal product called Politico Academy. 18:29 – Chuck: How do you fit into what Politico is doing? 18:45 – Guest: They are giving out cutting edge information regarding policies and that sort of thing. We have tools like compass to track your notes within the team and also bills. Politico Pro is like for lobbyists and those fees are very expensive. 19:23 – Panel: Do you have to create graphs and D3 and stuff like that? 19:35 – Guest: I am itching to do that and we haven’t really done that, yet. I would love to do that, though! 19:42 – Panel: Chris will be talking about that which will air on YouTube! 20:02 – Panel: Ben, you make decisions based on architecture – do the members of the team get to contribute to that or no? 20:27 – Guest: Yeah, I have a democratic approach. I want people to show their opinion, so that way they know that their voice is getting heard. I don’t make all the decisions, but I do give some guidelines. 21:11 – Chris: I like to time box it. I do the same thing, too. 21:49 – Chuck: Yeah someone would propose something to a new feature (or whatnot) and we would want to see if we want to explore it now or later. 21:55 – Panel goes back-and-forth. 23:26 – Panel: On that note- you want to make sure that each developer has submitted a pole request per day. What is universal in regards to coding practices, and code comments, and stuff like that and code style? 23:55 – Guest: We do PREMIER across the board right now. 24:55 – Panel asks a question. 25:08 – Guest: I like having more...if it can show WHY you did it a certain way. 25:33 – Panel: It’s good not to save the data. 25:40 – Chris: Sometimes a SQUASH can be helpful. 25:50 – Divya: I try to commit often and my work is a work in-progress. 26:08 – Chris. 26:13 – Chuck comments. 26:24 – Panel goes back-and-forth! 26:43 – Guest: They will write their code and then use Prettier and it will look terrifying b/c it’s like what did you just do. I want them to see the 2 lines they changed rather than the whole file. 27:13 – Panelist talks about Linting. 27:34 – Chuck. 27:39 – Chris: If it’s not the default then... 27:55 – Divya: When you manually setup your project you can run a prettier pre-commit. 28:00 – Chris: My pre-commits are much more thorough. 28:37 – Panel goes back-and-forth! 29:26 – Advertisement – Get A Coder Job! 30:02 – Panel: Can you talk about VuePress, please? 30:06 – Guest: Yeah! The guest talks about VuePress in-detail! 31:21 – Chuck. 31:25 – Panel. 31:44 – Chuck: I am curious about this – what’s the difference between VuePress and Nuxt? 31:58 – Guest answers the question. 32:19 – Chris adds his comments into this topic (VuePress and Nuxt). 32:47 – Guest. 33:02 – Divya. 34:24 – Chuck: If they are fluent in English and native in another language and it’s easy to figure where to put everything. 34:41 – Chris: Yeah they have a clear path for to clear up any documentation potential problems. 35:04 – Chris: ...the core docs and the impending libraries and the smaller ones, too. 35:17 – Divya: When you are creating the docs and you are thinking about NTN it’s important to think about the English docs. They say that it’s best to think of the language if that doc was to be translated into another language. 35:50 – Chris: Definition: “A function that returns another function” = higher function. 36:19 – Chuck: We are running out of time, and let’s talk about user-scripts. You have co-organized a group in Washington D.C. I tell people to go to a group to help like Meetups. What do you recommend? 37:00 – Guest: A lot of it is to be that community leader and show-up. To figure out let’s go ahead and meet. I know a lot of people worry about the “venue,” but go to a public library or ask an office for space, that’s an option, too. 38:15 – Panel: We have these different Meetups and right now in my area we don’t have one for Vue. 38:37 – Guest: Yeah, I recommend just getting it going. 39:04 – Chris: Yeah, just forming a community. 39:16 – Chuck: D.C. is a large area, so I can see where the larger market it would be easier. But even for the smaller communities there can be 10 or so people but that’s a great start! 39:48 – Guest: Yeah, once it gets started it flows. 40:02 – Chuck: What are the topics then at these meetings? 40:05 – Guest: I like to help people to code, so that’s my inspiration. 40:50 – Divya: I help with the Chicago Meetup and tons of people sign-up but not a lot of people to show – that’s our challenge right now! How do you get people to actually GO! 41:44 – Guest: I tell people that it’s a free event and really the show up rate is about 30%. I let the people to know that there is a beginning section, too, that there is a safe place for them. I find that that is helpful. 42:44 – Chris: Yeah, even the language/vocabulary that you use can really deter people or make people feel accepted. 43:48 – Chuck: Let’s talk about the idea of ‘new developers.’ They would ask people for the topics that THEY wanted to talk about. 44:37 – Divya: From an organizer’s perspective... 46:10 – Chuck: If you want people to show-up to your Meetups just do this...a secret pattern! I did a talk about a block chain and we probably had 3x to 4x a better turnout. 46:55 – Panel. 47:00 – Divya: The one event that was really successful was having Evan and Chris come to Chicago. That event was eventually $25.00 and then when Evan couldn’t come the price dropped to $5.00. 48:00 – Panel goes back-and-forth. 48:22 – Chuck: Where can they find you? 48:30 – Guest: BenCodeZen! 48:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React Angular JavaScript DevChat TV Graph QL VuePress Nuxt Meetup 1 Chicago Meetup for Fullstack JavaScript Ben’s LinkedIn Ben’s Website Ben’s Twitter DevChat TV Past Episode with Benjamin Hong (MJS 082) Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Divya Creator Summit Chris “Chuck” Take a break when traveling to conferences and such Vue.js in Action Eric Stackblitz Charles The One Thing Self Publishing School Ben Ted Talk by Elizabeth Gilbert Vue.js Meetups
Panel: Chris Fritz Eric Hatchet Divya Sasidharan Charles Max Wood Special Guest: Benjamin Hong In this episode, the panel talks with Benjamin Hong who is a Senior Fullstack Engineer at GitLab, Inc. who currently resides in the Washington D.C. metro area. Ben and the panel talk about Politico and the current projects that Ben is working on. The panelists talk about topics, such as Vue, Vuex, VuePress, Nuxt, among others. Check out today’s episode! Show Topics: 0:00 – Advertisement – Kendo UI 0:32 – Panel: Hi! Welcome – our panel today is live at Park City, UT. 1:34 – Benjamin introduces himself. 1:41 – Panel: Politico is a well trafficked website and it’s well known. What are your thoughts about working on a well trafficked website? 2:22 – Guest. 2:44 – Panel: Why did you settle on Vue? 2:50 – Guest: ...I came onto the team and was passionate about helping. We built out the component types. I thought Vue was better suited for the team. 3:36 – Panel: That’s a large team – that’s a lot of people 3:45 – Guest: Yeah, at one time I was writing everything. A lot of people on the team right now didn’t know a lot of JavaScript – but having Vue helps everyone to move the project forward. 4:29 – Panel: They can write just HTML, etc. 4:38 – Guest: Yep, exactly. It helps with communication. 4:55 – Panel asks a question. 5:00 – Guest: I use an event bust. 5:20 – Chuck: Did you have to move from an event bust to Vuex and what was that like? 5:30 – Guest: We had to move into module-esque anyways. 5:42 – Panel: You probably have Vuex with modules and...? 5:54 – Guest: We are using your enterprise broiler plate! 6:05 – Panel: Yeah, every team uses their own patterns. What files would I see used within your team? 6:16 – Guest answers the question. 6:55 – Panel asks a question. 7:01 – Guest: We can keep with the recommended packages fairly well! 7:21 – Panel. 7:26 – Guest: Funny enough at London...we are starting to get a lot with our co-coverage. We have a hard time balancing with unit tests and...eventually we want to look at Cypress. 8:12 – Panel. 8:15 – Guest. 8:19 – Chuck. 8:38 – Panel: I always encourage people to test the unit tests. 9:00 – Chuck: As you adopted Vue what was it like to get buy-in from management. Usually they have a strong backend with Rails, and someone comes in and says let’s use X. How do you sell them on: we are going to use this new technology. 9:30 – Guest: We could really use the user-experience better, and also to offload things from the backend developers. Our desire was to control more things like animation and to specialize those things. That was my selling point. 10:32 – Chuck: I tend to do both on the apps that I’m working on. I told Chris that I was going to switch a lot of things to Vue – some of the things you said I am not interested in the backend b/c it’s too painful. 11:01 – Panel. 11:08 – Chuck: There are things that are really, really good on the backend, but... 11:18 – Panel. 11:24 – Panel: You get the benefits of rendering... 11:43 – Chuck: What are your challenges into Vue? 11:50 – Guest: It’s definitely the scale, because we were a team of 5 and now we are a team of 15. Also, the different time changes b/c we have some people who live in India. Getting that workflow and we are looking at STORYBOOK to help with that. 12:30 – Chuck: Every person you add doubles the complexity of the group. 12:40 – Panel: I think that is conservative! 12:49 – Chuck. 12:56 – Panel: I get to see Chuck in person so this is different! 13:09 – Panel: Challenge accepted! 13:18 – Panel: This is the roast! 13:25 – Panel: Are you working, Benjamin, on a component library? Are you working on that alongside your current project? How do you manage that/ 13:38 – Guest: Unfortunately, we have a lot of deadlines and everything is running in parallel! 14:00 – Panel: How do you implement expectations throughout your team? 14:13 – Panel. 14:16 – Guest: It’s for everyone to understand their own expectations and the team’s expectations. I have to be able to parse it out w/o giving them too much guidance. 15:20 – Panel. 15:25 – Guest: Yep! 15:30 – Panel: ...having to edit the same files and the same lines... 15:36 – Guest: We have been able to keep those in their own lanes! 15:44 – Panel: Yeah that’s no fun – I’ve been there! 15:53 – Chuck: You are working in the development branch – and then their thing breaks my thing, etc. 16:08 – Panel: You are doing dimensional travel! It’s almost like reorganizing a complete novel. 16:30 – Guest: You don’t want your work to drag on too long b/c you don’t want to poorly affect the other team members. 16:53 – Panel: Does that mean you use internal docs to help with the workflow? 17:03 – Guest: Yes, we use the common team board. 17:30 – Panel asks a question. 17:39 – Guest: Yes, that’s a challenge. I have setup an internal product called Politico Academy. 18:29 – Chuck: How do you fit into what Politico is doing? 18:45 – Guest: They are giving out cutting edge information regarding policies and that sort of thing. We have tools like compass to track your notes within the team and also bills. Politico Pro is like for lobbyists and those fees are very expensive. 19:23 – Panel: Do you have to create graphs and D3 and stuff like that? 19:35 – Guest: I am itching to do that and we haven’t really done that, yet. I would love to do that, though! 19:42 – Panel: Chris will be talking about that which will air on YouTube! 20:02 – Panel: Ben, you make decisions based on architecture – do the members of the team get to contribute to that or no? 20:27 – Guest: Yeah, I have a democratic approach. I want people to show their opinion, so that way they know that their voice is getting heard. I don’t make all the decisions, but I do give some guidelines. 21:11 – Chris: I like to time box it. I do the same thing, too. 21:49 – Chuck: Yeah someone would propose something to a new feature (or whatnot) and we would want to see if we want to explore it now or later. 21:55 – Panel goes back-and-forth. 23:26 – Panel: On that note- you want to make sure that each developer has submitted a pole request per day. What is universal in regards to coding practices, and code comments, and stuff like that and code style? 23:55 – Guest: We do PREMIER across the board right now. 24:55 – Panel asks a question. 25:08 – Guest: I like having more...if it can show WHY you did it a certain way. 25:33 – Panel: It’s good not to save the data. 25:40 – Chris: Sometimes a SQUASH can be helpful. 25:50 – Divya: I try to commit often and my work is a work in-progress. 26:08 – Chris. 26:13 – Chuck comments. 26:24 – Panel goes back-and-forth! 26:43 – Guest: They will write their code and then use Prettier and it will look terrifying b/c it’s like what did you just do. I want them to see the 2 lines they changed rather than the whole file. 27:13 – Panelist talks about Linting. 27:34 – Chuck. 27:39 – Chris: If it’s not the default then... 27:55 – Divya: When you manually setup your project you can run a prettier pre-commit. 28:00 – Chris: My pre-commits are much more thorough. 28:37 – Panel goes back-and-forth! 29:26 – Advertisement – Get A Coder Job! 30:02 – Panel: Can you talk about VuePress, please? 30:06 – Guest: Yeah! The guest talks about VuePress in-detail! 31:21 – Chuck. 31:25 – Panel. 31:44 – Chuck: I am curious about this – what’s the difference between VuePress and Nuxt? 31:58 – Guest answers the question. 32:19 – Chris adds his comments into this topic (VuePress and Nuxt). 32:47 – Guest. 33:02 – Divya. 34:24 – Chuck: If they are fluent in English and native in another language and it’s easy to figure where to put everything. 34:41 – Chris: Yeah they have a clear path for to clear up any documentation potential problems. 35:04 – Chris: ...the core docs and the impending libraries and the smaller ones, too. 35:17 – Divya: When you are creating the docs and you are thinking about NTN it’s important to think about the English docs. They say that it’s best to think of the language if that doc was to be translated into another language. 35:50 – Chris: Definition: “A function that returns another function” = higher function. 36:19 – Chuck: We are running out of time, and let’s talk about user-scripts. You have co-organized a group in Washington D.C. I tell people to go to a group to help like Meetups. What do you recommend? 37:00 – Guest: A lot of it is to be that community leader and show-up. To figure out let’s go ahead and meet. I know a lot of people worry about the “venue,” but go to a public library or ask an office for space, that’s an option, too. 38:15 – Panel: We have these different Meetups and right now in my area we don’t have one for Vue. 38:37 – Guest: Yeah, I recommend just getting it going. 39:04 – Chris: Yeah, just forming a community. 39:16 – Chuck: D.C. is a large area, so I can see where the larger market it would be easier. But even for the smaller communities there can be 10 or so people but that’s a great start! 39:48 – Guest: Yeah, once it gets started it flows. 40:02 – Chuck: What are the topics then at these meetings? 40:05 – Guest: I like to help people to code, so that’s my inspiration. 40:50 – Divya: I help with the Chicago Meetup and tons of people sign-up but not a lot of people to show – that’s our challenge right now! How do you get people to actually GO! 41:44 – Guest: I tell people that it’s a free event and really the show up rate is about 30%. I let the people to know that there is a beginning section, too, that there is a safe place for them. I find that that is helpful. 42:44 – Chris: Yeah, even the language/vocabulary that you use can really deter people or make people feel accepted. 43:48 – Chuck: Let’s talk about the idea of ‘new developers.’ They would ask people for the topics that THEY wanted to talk about. 44:37 – Divya: From an organizer’s perspective... 46:10 – Chuck: If you want people to show-up to your Meetups just do this...a secret pattern! I did a talk about a block chain and we probably had 3x to 4x a better turnout. 46:55 – Panel. 47:00 – Divya: The one event that was really successful was having Evan and Chris come to Chicago. That event was eventually $25.00 and then when Evan couldn’t come the price dropped to $5.00. 48:00 – Panel goes back-and-forth. 48:22 – Chuck: Where can they find you? 48:30 – Guest: BenCodeZen! 48:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React Angular JavaScript DevChat TV Graph QL VuePress Nuxt Meetup 1 Chicago Meetup for Fullstack JavaScript Ben’s LinkedIn Ben’s Website Ben’s Twitter DevChat TV Past Episode with Benjamin Hong (MJS 082) Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Divya Creator Summit Chris “Chuck” Take a break when traveling to conferences and such Vue.js in Action Eric Stackblitz Charles The One Thing Self Publishing School Ben Ted Talk by Elizabeth Gilbert Vue.js Meetups
Panel: Charles Max Wood John Papa Special Guest: Adrian Faciu In this episode, Chuck talks with Adrian Faciu who is a developer for Visma and is a blogger. The panel talks to Adrian about his blog titled, “NgRx Tips & Tricks.” They ask Adrian in-depth questions about NgRx, among many other topics. Listen to today’s episode for more details! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:55 – Chuck: Hi! Our guest is Adrian Faciu. 1:10 – Guest: Hello! I am Adrian and I am a developer who works for a Norwegian company, but I live in Romania! 1:35 – Chuck. 1:36 – Guest. 1:47 – Chuck: The market is so global. I have talked with many different guests from different parts of the world – it’s really neat! It’s this global phenomenon. 2:12 – Guest: It’s a great thing! 2:23 – Chuck: They have an office where you live? 2:31 – Yes. 2:37 – Chuck: How are you guys using Angular over there? 2:47 – Guest: We have several different products. We customize using them with internalized tools. 3:04 – Chuck: Real quick let’s talk about your blog post. I will admit I am not that familiar with NgRx, so I will ask newbie questions. Now do you want to explain what this is? 3:41 – Guest: Sure! The short story of the article is I saw people doing things the hard way. And after I figured out some things, people encouraged me to write about my experience. 4:37 – Chuck: John Papa just signed-in! 4:53 – Guest: Yes NgRx is... 5:02 – Chuck: You used classes for all actions what do you mean by that? 5:05 – Guest answers the question into detail. 6:31 – Chuck: Let’s say we have a class that uses a log error... 6:42 – Guest: For example you have actions that... 7:02 – Chuck: When you use the reducer... 7:10 – Guest: There are other tricks we can use like keeping all of them in the same file... 8:00 – Guest talks about the union type. 8:24 – Chuck: You learned this by doing things wrong – what happens when you do these things wrong? 8:30 – Guest: If you don’t put all of your classes in the right file then you end up with a lot of files. If you don’t create hero types then you’d have to... 10:02 – Chuck: If you import user actions then does it import all of the other types? 10:08 – Guest: Import everything from that file. 10:17 – Chuck: If you have any questions, John, feel free to chime-in! 10:29 – John: Yeah I am scanning through this. The negative I hear a lot of through actions, it’s cause we create constants – the action class creators, it seems to cause an undue amount of stress. How much actual code do you actually have to write – how do you feel about that? 11:12 – Guest: I didn’t want to write all of this code! That’s what I wanted to avoid. 11:44 – John: I wrote them, didn’t like them, I went back to them... It wasn’t just that I created a new action I had to create the constant and other things – also the place you do the union type, I’d forget to do the union type at the end! If you don’t have all of those things then it won’t work. Even on a simple project I’d have 120 lines of code for a simple task. 12:49 – Guest: Yes. Sometimes I would forget this or that. I’d have to figure out what I did wrong. I went back and created classes for a lot of things. I like the benefits. 13:19 – John: I like your ideas and your tips in your blog. How do you feel about the NAMES of those actions? 13:55 – Guest. 14:51 – John: Important part is the naming of the string inside of it – that’s the value... So you can see the actions that are being displayed. 15:25 – Guest: If you didn’t do it right that’s where the problem would be. 15:38 – John: To me it’s a love/hate relationship b/c there is so much code to it. I usually copy and paste which means that I usually forget to change something. I agree, but I don’t’ like creating it. 16:05 – Guest: I’ve been trying to figure out a solution for it eventually I gave up. 16:23 – John: Moving onto effects – inside that happens inside of the Redux cycle – if you want to do something outside of it that’s when you do effects right? 16:40 – Guest. 16:49 – John: Using the effects is good or do it a different way? 17: 20 – Guest: It makes my components cleaner. I have seen projects that DON’T use it and it’s not the best. 17:36 – John: Like getting a list of customers... (I am using my hands and nobody can see me!) It’s weird to me to NOT use the effects! 18:52 – Guest: If you implement some type of caching then it’s everything to put everything in the state. 19:07 – Chuck: I haven’t used it as much as I would like, but I haven’t do much with it. 19:23 – John: I am curious from somebody hasn’t dove into it – does effects make sense to you, Chuck? 19:39 – Chuck: It seems like effects is a side effect? Like calling out an external API... 20:10 – John: Yeah even multiple effects. John asks a question. 20:23 – Guest answers the question. 20:29 – Chuck: I like that you can make constrained assumptions and all of the complicated... 21:10 – Guest: I am using my effects like functions. 21:26 – John’s question. 21:31 – Chuck: Doing everything! You said implement the 2-payload method – that doesn’t make sense? 21:43 – Guest: Not 100% convinced you need it. What people are doing on these actions... 22:43 – Chuck: How much magic you want? 22:50 – Guest. 22:59 – John: I am confused about ERROR HANDLING. What do you advise for people to do? 23:21 – Guest: Basically, when you deal with that effect you deal with the actions, and the actions... If you get an error on it it’s done. I was trying to explain there that...do it on another stream. Try it on another stream and handle it. What happened to me – I did it on the action state and I got an error and then everything will stop. 24:27 – John: That’s not good! 24:32 – Chuck. 24:35 – John: Good tip! 24:40 – Chuck: Angular has gotten better at that. I still find, though... 25:06 – John. 25:16 – John: Hey I appreciate these blog posts that don’t always show the happy path. To show the unhappy path is a good idea. 25:32 – Chuck. 26:00 – Going down your list, Adrian, let’s talk about effects are services. I agree, but not that we have... 26:24 – Guest: I have seen cases where people forget that. They say I want to call a service, how do I do that? They forget... 26:50 – John: You have to provide your services somewhere. The old way was you could go into the... What do you do? 27:28 – Guest: Most of the applications... 28:17 – John. 28:25 – Chuck: I love deleting code! 28:32 – John: You end up in a spaghetti pool, though, if you needed that deleted code. Nooooo!!! 29:00 – Chuck. 29:01 – Guest. 29:10 – Advertisement: Get A Coder Job! 29:49 – John: Let’s talk about reducers – the smallest part of your tip sections. You say, “keep them simple” – how do you keep them simple? 30:07 – Guest: I have received this observation from several people. This is the biggest problem I had. How to keep them simple... 31:08 – John: When someone makes that type of code – where would you want them to put it? 31:23 – Guest: It depends on different types of actions. Maybe I have some sort of matter that I added to the data – an action from my application we can catch it into an effect and... Not all of the actions have to go to the reducer. 32:04 – John: I say, “Hmm...” when I see reducers like this...they are running a synchronized code inside of a reducer. And I see that a lot. 32:24 – Chuck. 32:28 – John: You go call a reaction, and...sometimes they are doing HTP there, but it’s hard to explain. 33:11 – John: What are some of the things that they can do to step-into, when they are using these? 33:16 – Guest: That’s why I only have these things about the reducers. 33:48 – Chuck: I am wondering what is the life cycle look like? What do you call a reducer from an effect from an action or vice versa? 34:09 – Guest answers the question. 34:37 – John: It can be confusing with all of these different terms. Where does it end? Your component you have to say: call this action. Perform this action and then the action says get customers – the NgRx library listens for that and helps connect to the reducer for you. Look into the action and then return that to a stream to whatever... 35:29 – Guest: Yes, it sends it to reducers. Guest goes into more detail. 36:09 – John: You never talk to the reducer directly? 36:17 – Chuck: ...is that something I should have done before – or does it call effects and the effects load the information into the state and the reducer pulls it out for the action? 36:46 – Guest. 36:58 – Chuck. 37:03 – Guest. 37:53 – John: It really depends on what you want to do, Chuck. John will give a hypothetical scenario. 38:58 – Chuck: In your scenario, let’s say... 39:14 – John: Everything is right up until the end there. It’s a little magical, honestly. I just know here is my selector and here is my data! 40:17 – Chuck: Selector is essentially I am interested in THIS state or THIS state change. 40:40 – Guest. 40:50 – Chuck: So when that changes... 40:56 – Guest. 40:59 – John. 41:05 – Chuck: A little piece of the overall store. 41:18 – Guest: My tip there was a bout the selectors... 42:30 – Chuck: So I can hand off my selector to multiple places? 42:36 – Guest: Yep. You don’t need to know anything else. 42:44 – Guest: Combine it as needed. Another benefit here is memorization. It says that each time you select pure functions it wont call the function again. 43:42 – I am seeing a trend in your tips, too. I am seeing easier way to code. You are always saying selector technique. There are a lot of terms in NgRx module. Dispatchers and states and stores...it’s nice to have a way to create the code easier. 44:21 – Guest: It does take a lot of time for someone to grasp. 44:30 – Chuck. 44:35 – John: Don’t use the store all over the place – that’s what Adrian says! 44:54 – Guest: I think it’s more like dumb components. I have a container of all of these dumb components. The container is the one that KNOWS. 46:22 – Chuck: It’s just a button. 46:28 – Guest: You click the button and it triggers. Whenever you want to use that component then you... 46:48 – Chuck: Any types of data that you wouldn’t want to use in your NgRx store? 47:07 – Guest: It depends – I am not holding any logging information there, though. 47:51 – John: I like to ask WHY. Property initialization. You are saying... 48:11 – Guest: It’s less code and it’s reasonable. If I can have less code then I’d love to have it. I think it’s cleaner b/c it’s not that much code. Most people might think blah, blah, blah, but I think it looks okay. 48:46 – John: I can see why it would be less code. 48:57 – Guest. 49:07 – John: I haven’t seen this: looking at your property initializer... Looking at your code here, Adrian... The store object itself is a reference to the NgRx store. That means you have to... To me I don’t want my app to know that NgRx is involved. I started to do this...I was creating an Angular service, which... Have you done this before? 50:33 – Guest: I have seen this function but I haven’t played with it. It makes sense. This takes it a step further. Like you say it’s perfect b/c nobody knows anything about that store, but it’s a new level. I think you have some benefits with that way of doing it, too. 51:23 – John: The one thing that sticks out is company name is your observable, then your... 52:10 – Guest: Yeah that’s good b/c it might be better! They might not even know what NgRx is, and you have a service so just use them. Yeah it’s just an observable. 52:33 – Chuck: You don’t want to see my garage. 52:44 – Guest: Some services are underrated. Like you suggested we could use them for much more. 53:01 – Guest: It was nice writing these tips. 53:19 – Chuck: What are working on now? 53:23 – Guest: Writing a new blog. 53:41 – Chuck: We will keep an eye out for it. Where do you post? 53:55 – Guest: Usually Medium, and Twitter. Search for my name and you will find me, b/c I have the same handler on all the places. 54:15 – Chuck & John: Let’s go to picks! 54:30 – Chuck is talking about future episodes and potential topics. You can vote stuff up on Trello on NgRx so we can go deeper on this topic. 55:40 – Advertisement – Fresh Books! 1:02:00 – Advertisement – Cache Fly! Links: Vue jQuery Angular C# Chuck’s Twitter John Papa’s Twitter Adrian’s Medium Adrian’s Twitter Adrian’s GitHub Adrian’s Blog Post Adrian’s Article: Testing NgRx Effects Sponsors: Angular Boot Camp Fresh Books Get a Coder Job Course Cache Fly Picks: John NgRx Data Conferences - Don’t feel mofo Charles Discord App Adrain Angular In-depth Doc Wallaby
Panel: Charles Max Wood John Papa Special Guest: Adrian Faciu In this episode, Chuck talks with Adrian Faciu who is a developer for Visma and is a blogger. The panel talks to Adrian about his blog titled, “NgRx Tips & Tricks.” They ask Adrian in-depth questions about NgRx, among many other topics. Listen to today’s episode for more details! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:55 – Chuck: Hi! Our guest is Adrian Faciu. 1:10 – Guest: Hello! I am Adrian and I am a developer who works for a Norwegian company, but I live in Romania! 1:35 – Chuck. 1:36 – Guest. 1:47 – Chuck: The market is so global. I have talked with many different guests from different parts of the world – it’s really neat! It’s this global phenomenon. 2:12 – Guest: It’s a great thing! 2:23 – Chuck: They have an office where you live? 2:31 – Yes. 2:37 – Chuck: How are you guys using Angular over there? 2:47 – Guest: We have several different products. We customize using them with internalized tools. 3:04 – Chuck: Real quick let’s talk about your blog post. I will admit I am not that familiar with NgRx, so I will ask newbie questions. Now do you want to explain what this is? 3:41 – Guest: Sure! The short story of the article is I saw people doing things the hard way. And after I figured out some things, people encouraged me to write about my experience. 4:37 – Chuck: John Papa just signed-in! 4:53 – Guest: Yes NgRx is... 5:02 – Chuck: You used classes for all actions what do you mean by that? 5:05 – Guest answers the question into detail. 6:31 – Chuck: Let’s say we have a class that uses a log error... 6:42 – Guest: For example you have actions that... 7:02 – Chuck: When you use the reducer... 7:10 – Guest: There are other tricks we can use like keeping all of them in the same file... 8:00 – Guest talks about the union type. 8:24 – Chuck: You learned this by doing things wrong – what happens when you do these things wrong? 8:30 – Guest: If you don’t put all of your classes in the right file then you end up with a lot of files. If you don’t create hero types then you’d have to... 10:02 – Chuck: If you import user actions then does it import all of the other types? 10:08 – Guest: Import everything from that file. 10:17 – Chuck: If you have any questions, John, feel free to chime-in! 10:29 – John: Yeah I am scanning through this. The negative I hear a lot of through actions, it’s cause we create constants – the action class creators, it seems to cause an undue amount of stress. How much actual code do you actually have to write – how do you feel about that? 11:12 – Guest: I didn’t want to write all of this code! That’s what I wanted to avoid. 11:44 – John: I wrote them, didn’t like them, I went back to them... It wasn’t just that I created a new action I had to create the constant and other things – also the place you do the union type, I’d forget to do the union type at the end! If you don’t have all of those things then it won’t work. Even on a simple project I’d have 120 lines of code for a simple task. 12:49 – Guest: Yes. Sometimes I would forget this or that. I’d have to figure out what I did wrong. I went back and created classes for a lot of things. I like the benefits. 13:19 – John: I like your ideas and your tips in your blog. How do you feel about the NAMES of those actions? 13:55 – Guest. 14:51 – John: Important part is the naming of the string inside of it – that’s the value... So you can see the actions that are being displayed. 15:25 – Guest: If you didn’t do it right that’s where the problem would be. 15:38 – John: To me it’s a love/hate relationship b/c there is so much code to it. I usually copy and paste which means that I usually forget to change something. I agree, but I don’t’ like creating it. 16:05 – Guest: I’ve been trying to figure out a solution for it eventually I gave up. 16:23 – John: Moving onto effects – inside that happens inside of the Redux cycle – if you want to do something outside of it that’s when you do effects right? 16:40 – Guest. 16:49 – John: Using the effects is good or do it a different way? 17: 20 – Guest: It makes my components cleaner. I have seen projects that DON’T use it and it’s not the best. 17:36 – John: Like getting a list of customers... (I am using my hands and nobody can see me!) It’s weird to me to NOT use the effects! 18:52 – Guest: If you implement some type of caching then it’s everything to put everything in the state. 19:07 – Chuck: I haven’t used it as much as I would like, but I haven’t do much with it. 19:23 – John: I am curious from somebody hasn’t dove into it – does effects make sense to you, Chuck? 19:39 – Chuck: It seems like effects is a side effect? Like calling out an external API... 20:10 – John: Yeah even multiple effects. John asks a question. 20:23 – Guest answers the question. 20:29 – Chuck: I like that you can make constrained assumptions and all of the complicated... 21:10 – Guest: I am using my effects like functions. 21:26 – John’s question. 21:31 – Chuck: Doing everything! You said implement the 2-payload method – that doesn’t make sense? 21:43 – Guest: Not 100% convinced you need it. What people are doing on these actions... 22:43 – Chuck: How much magic you want? 22:50 – Guest. 22:59 – John: I am confused about ERROR HANDLING. What do you advise for people to do? 23:21 – Guest: Basically, when you deal with that effect you deal with the actions, and the actions... If you get an error on it it’s done. I was trying to explain there that...do it on another stream. Try it on another stream and handle it. What happened to me – I did it on the action state and I got an error and then everything will stop. 24:27 – John: That’s not good! 24:32 – Chuck. 24:35 – John: Good tip! 24:40 – Chuck: Angular has gotten better at that. I still find, though... 25:06 – John. 25:16 – John: Hey I appreciate these blog posts that don’t always show the happy path. To show the unhappy path is a good idea. 25:32 – Chuck. 26:00 – Going down your list, Adrian, let’s talk about effects are services. I agree, but not that we have... 26:24 – Guest: I have seen cases where people forget that. They say I want to call a service, how do I do that? They forget... 26:50 – John: You have to provide your services somewhere. The old way was you could go into the... What do you do? 27:28 – Guest: Most of the applications... 28:17 – John. 28:25 – Chuck: I love deleting code! 28:32 – John: You end up in a spaghetti pool, though, if you needed that deleted code. Nooooo!!! 29:00 – Chuck. 29:01 – Guest. 29:10 – Advertisement: Get A Coder Job! 29:49 – John: Let’s talk about reducers – the smallest part of your tip sections. You say, “keep them simple” – how do you keep them simple? 30:07 – Guest: I have received this observation from several people. This is the biggest problem I had. How to keep them simple... 31:08 – John: When someone makes that type of code – where would you want them to put it? 31:23 – Guest: It depends on different types of actions. Maybe I have some sort of matter that I added to the data – an action from my application we can catch it into an effect and... Not all of the actions have to go to the reducer. 32:04 – John: I say, “Hmm...” when I see reducers like this...they are running a synchronized code inside of a reducer. And I see that a lot. 32:24 – Chuck. 32:28 – John: You go call a reaction, and...sometimes they are doing HTP there, but it’s hard to explain. 33:11 – John: What are some of the things that they can do to step-into, when they are using these? 33:16 – Guest: That’s why I only have these things about the reducers. 33:48 – Chuck: I am wondering what is the life cycle look like? What do you call a reducer from an effect from an action or vice versa? 34:09 – Guest answers the question. 34:37 – John: It can be confusing with all of these different terms. Where does it end? Your component you have to say: call this action. Perform this action and then the action says get customers – the NgRx library listens for that and helps connect to the reducer for you. Look into the action and then return that to a stream to whatever... 35:29 – Guest: Yes, it sends it to reducers. Guest goes into more detail. 36:09 – John: You never talk to the reducer directly? 36:17 – Chuck: ...is that something I should have done before – or does it call effects and the effects load the information into the state and the reducer pulls it out for the action? 36:46 – Guest. 36:58 – Chuck. 37:03 – Guest. 37:53 – John: It really depends on what you want to do, Chuck. John will give a hypothetical scenario. 38:58 – Chuck: In your scenario, let’s say... 39:14 – John: Everything is right up until the end there. It’s a little magical, honestly. I just know here is my selector and here is my data! 40:17 – Chuck: Selector is essentially I am interested in THIS state or THIS state change. 40:40 – Guest. 40:50 – Chuck: So when that changes... 40:56 – Guest. 40:59 – John. 41:05 – Chuck: A little piece of the overall store. 41:18 – Guest: My tip there was a bout the selectors... 42:30 – Chuck: So I can hand off my selector to multiple places? 42:36 – Guest: Yep. You don’t need to know anything else. 42:44 – Guest: Combine it as needed. Another benefit here is memorization. It says that each time you select pure functions it wont call the function again. 43:42 – I am seeing a trend in your tips, too. I am seeing easier way to code. You are always saying selector technique. There are a lot of terms in NgRx module. Dispatchers and states and stores...it’s nice to have a way to create the code easier. 44:21 – Guest: It does take a lot of time for someone to grasp. 44:30 – Chuck. 44:35 – John: Don’t use the store all over the place – that’s what Adrian says! 44:54 – Guest: I think it’s more like dumb components. I have a container of all of these dumb components. The container is the one that KNOWS. 46:22 – Chuck: It’s just a button. 46:28 – Guest: You click the button and it triggers. Whenever you want to use that component then you... 46:48 – Chuck: Any types of data that you wouldn’t want to use in your NgRx store? 47:07 – Guest: It depends – I am not holding any logging information there, though. 47:51 – John: I like to ask WHY. Property initialization. You are saying... 48:11 – Guest: It’s less code and it’s reasonable. If I can have less code then I’d love to have it. I think it’s cleaner b/c it’s not that much code. Most people might think blah, blah, blah, but I think it looks okay. 48:46 – John: I can see why it would be less code. 48:57 – Guest. 49:07 – John: I haven’t seen this: looking at your property initializer... Looking at your code here, Adrian... The store object itself is a reference to the NgRx store. That means you have to... To me I don’t want my app to know that NgRx is involved. I started to do this...I was creating an Angular service, which... Have you done this before? 50:33 – Guest: I have seen this function but I haven’t played with it. It makes sense. This takes it a step further. Like you say it’s perfect b/c nobody knows anything about that store, but it’s a new level. I think you have some benefits with that way of doing it, too. 51:23 – John: The one thing that sticks out is company name is your observable, then your... 52:10 – Guest: Yeah that’s good b/c it might be better! They might not even know what NgRx is, and you have a service so just use them. Yeah it’s just an observable. 52:33 – Chuck: You don’t want to see my garage. 52:44 – Guest: Some services are underrated. Like you suggested we could use them for much more. 53:01 – Guest: It was nice writing these tips. 53:19 – Chuck: What are working on now? 53:23 – Guest: Writing a new blog. 53:41 – Chuck: We will keep an eye out for it. Where do you post? 53:55 – Guest: Usually Medium, and Twitter. Search for my name and you will find me, b/c I have the same handler on all the places. 54:15 – Chuck & John: Let’s go to picks! 54:30 – Chuck is talking about future episodes and potential topics. You can vote stuff up on Trello on NgRx so we can go deeper on this topic. 55:40 – Advertisement – Fresh Books! 1:02:00 – Advertisement – Cache Fly! Links: Vue jQuery Angular C# Chuck’s Twitter John Papa’s Twitter Adrian’s Medium Adrian’s Twitter Adrian’s GitHub Adrian’s Blog Post Adrian’s Article: Testing NgRx Effects Sponsors: Angular Boot Camp Fresh Books Get a Coder Job Course Cache Fly Picks: John NgRx Data Conferences - Don’t feel mofo Charles Discord App Adrain Angular In-depth Doc Wallaby
Panel: Charles Max Wood John Papa Special Guest: Adrian Faciu In this episode, Chuck talks with Adrian Faciu who is a developer for Visma and is a blogger. The panel talks to Adrian about his blog titled, “NgRx Tips & Tricks.” They ask Adrian in-depth questions about NgRx, among many other topics. Listen to today’s episode for more details! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:55 – Chuck: Hi! Our guest is Adrian Faciu. 1:10 – Guest: Hello! I am Adrian and I am a developer who works for a Norwegian company, but I live in Romania! 1:35 – Chuck. 1:36 – Guest. 1:47 – Chuck: The market is so global. I have talked with many different guests from different parts of the world – it’s really neat! It’s this global phenomenon. 2:12 – Guest: It’s a great thing! 2:23 – Chuck: They have an office where you live? 2:31 – Yes. 2:37 – Chuck: How are you guys using Angular over there? 2:47 – Guest: We have several different products. We customize using them with internalized tools. 3:04 – Chuck: Real quick let’s talk about your blog post. I will admit I am not that familiar with NgRx, so I will ask newbie questions. Now do you want to explain what this is? 3:41 – Guest: Sure! The short story of the article is I saw people doing things the hard way. And after I figured out some things, people encouraged me to write about my experience. 4:37 – Chuck: John Papa just signed-in! 4:53 – Guest: Yes NgRx is... 5:02 – Chuck: You used classes for all actions what do you mean by that? 5:05 – Guest answers the question into detail. 6:31 – Chuck: Let’s say we have a class that uses a log error... 6:42 – Guest: For example you have actions that... 7:02 – Chuck: When you use the reducer... 7:10 – Guest: There are other tricks we can use like keeping all of them in the same file... 8:00 – Guest talks about the union type. 8:24 – Chuck: You learned this by doing things wrong – what happens when you do these things wrong? 8:30 – Guest: If you don’t put all of your classes in the right file then you end up with a lot of files. If you don’t create hero types then you’d have to... 10:02 – Chuck: If you import user actions then does it import all of the other types? 10:08 – Guest: Import everything from that file. 10:17 – Chuck: If you have any questions, John, feel free to chime-in! 10:29 – John: Yeah I am scanning through this. The negative I hear a lot of through actions, it’s cause we create constants – the action class creators, it seems to cause an undue amount of stress. How much actual code do you actually have to write – how do you feel about that? 11:12 – Guest: I didn’t want to write all of this code! That’s what I wanted to avoid. 11:44 – John: I wrote them, didn’t like them, I went back to them... It wasn’t just that I created a new action I had to create the constant and other things – also the place you do the union type, I’d forget to do the union type at the end! If you don’t have all of those things then it won’t work. Even on a simple project I’d have 120 lines of code for a simple task. 12:49 – Guest: Yes. Sometimes I would forget this or that. I’d have to figure out what I did wrong. I went back and created classes for a lot of things. I like the benefits. 13:19 – John: I like your ideas and your tips in your blog. How do you feel about the NAMES of those actions? 13:55 – Guest. 14:51 – John: Important part is the naming of the string inside of it – that’s the value... So you can see the actions that are being displayed. 15:25 – Guest: If you didn’t do it right that’s where the problem would be. 15:38 – John: To me it’s a love/hate relationship b/c there is so much code to it. I usually copy and paste which means that I usually forget to change something. I agree, but I don’t’ like creating it. 16:05 – Guest: I’ve been trying to figure out a solution for it eventually I gave up. 16:23 – John: Moving onto effects – inside that happens inside of the Redux cycle – if you want to do something outside of it that’s when you do effects right? 16:40 – Guest. 16:49 – John: Using the effects is good or do it a different way? 17: 20 – Guest: It makes my components cleaner. I have seen projects that DON’T use it and it’s not the best. 17:36 – John: Like getting a list of customers... (I am using my hands and nobody can see me!) It’s weird to me to NOT use the effects! 18:52 – Guest: If you implement some type of caching then it’s everything to put everything in the state. 19:07 – Chuck: I haven’t used it as much as I would like, but I haven’t do much with it. 19:23 – John: I am curious from somebody hasn’t dove into it – does effects make sense to you, Chuck? 19:39 – Chuck: It seems like effects is a side effect? Like calling out an external API... 20:10 – John: Yeah even multiple effects. John asks a question. 20:23 – Guest answers the question. 20:29 – Chuck: I like that you can make constrained assumptions and all of the complicated... 21:10 – Guest: I am using my effects like functions. 21:26 – John’s question. 21:31 – Chuck: Doing everything! You said implement the 2-payload method – that doesn’t make sense? 21:43 – Guest: Not 100% convinced you need it. What people are doing on these actions... 22:43 – Chuck: How much magic you want? 22:50 – Guest. 22:59 – John: I am confused about ERROR HANDLING. What do you advise for people to do? 23:21 – Guest: Basically, when you deal with that effect you deal with the actions, and the actions... If you get an error on it it’s done. I was trying to explain there that...do it on another stream. Try it on another stream and handle it. What happened to me – I did it on the action state and I got an error and then everything will stop. 24:27 – John: That’s not good! 24:32 – Chuck. 24:35 – John: Good tip! 24:40 – Chuck: Angular has gotten better at that. I still find, though... 25:06 – John. 25:16 – John: Hey I appreciate these blog posts that don’t always show the happy path. To show the unhappy path is a good idea. 25:32 – Chuck. 26:00 – Going down your list, Adrian, let’s talk about effects are services. I agree, but not that we have... 26:24 – Guest: I have seen cases where people forget that. They say I want to call a service, how do I do that? They forget... 26:50 – John: You have to provide your services somewhere. The old way was you could go into the... What do you do? 27:28 – Guest: Most of the applications... 28:17 – John. 28:25 – Chuck: I love deleting code! 28:32 – John: You end up in a spaghetti pool, though, if you needed that deleted code. Nooooo!!! 29:00 – Chuck. 29:01 – Guest. 29:10 – Advertisement: Get A Coder Job! 29:49 – John: Let’s talk about reducers – the smallest part of your tip sections. You say, “keep them simple” – how do you keep them simple? 30:07 – Guest: I have received this observation from several people. This is the biggest problem I had. How to keep them simple... 31:08 – John: When someone makes that type of code – where would you want them to put it? 31:23 – Guest: It depends on different types of actions. Maybe I have some sort of matter that I added to the data – an action from my application we can catch it into an effect and... Not all of the actions have to go to the reducer. 32:04 – John: I say, “Hmm...” when I see reducers like this...they are running a synchronized code inside of a reducer. And I see that a lot. 32:24 – Chuck. 32:28 – John: You go call a reaction, and...sometimes they are doing HTP there, but it’s hard to explain. 33:11 – John: What are some of the things that they can do to step-into, when they are using these? 33:16 – Guest: That’s why I only have these things about the reducers. 33:48 – Chuck: I am wondering what is the life cycle look like? What do you call a reducer from an effect from an action or vice versa? 34:09 – Guest answers the question. 34:37 – John: It can be confusing with all of these different terms. Where does it end? Your component you have to say: call this action. Perform this action and then the action says get customers – the NgRx library listens for that and helps connect to the reducer for you. Look into the action and then return that to a stream to whatever... 35:29 – Guest: Yes, it sends it to reducers. Guest goes into more detail. 36:09 – John: You never talk to the reducer directly? 36:17 – Chuck: ...is that something I should have done before – or does it call effects and the effects load the information into the state and the reducer pulls it out for the action? 36:46 – Guest. 36:58 – Chuck. 37:03 – Guest. 37:53 – John: It really depends on what you want to do, Chuck. John will give a hypothetical scenario. 38:58 – Chuck: In your scenario, let’s say... 39:14 – John: Everything is right up until the end there. It’s a little magical, honestly. I just know here is my selector and here is my data! 40:17 – Chuck: Selector is essentially I am interested in THIS state or THIS state change. 40:40 – Guest. 40:50 – Chuck: So when that changes... 40:56 – Guest. 40:59 – John. 41:05 – Chuck: A little piece of the overall store. 41:18 – Guest: My tip there was a bout the selectors... 42:30 – Chuck: So I can hand off my selector to multiple places? 42:36 – Guest: Yep. You don’t need to know anything else. 42:44 – Guest: Combine it as needed. Another benefit here is memorization. It says that each time you select pure functions it wont call the function again. 43:42 – I am seeing a trend in your tips, too. I am seeing easier way to code. You are always saying selector technique. There are a lot of terms in NgRx module. Dispatchers and states and stores...it’s nice to have a way to create the code easier. 44:21 – Guest: It does take a lot of time for someone to grasp. 44:30 – Chuck. 44:35 – John: Don’t use the store all over the place – that’s what Adrian says! 44:54 – Guest: I think it’s more like dumb components. I have a container of all of these dumb components. The container is the one that KNOWS. 46:22 – Chuck: It’s just a button. 46:28 – Guest: You click the button and it triggers. Whenever you want to use that component then you... 46:48 – Chuck: Any types of data that you wouldn’t want to use in your NgRx store? 47:07 – Guest: It depends – I am not holding any logging information there, though. 47:51 – John: I like to ask WHY. Property initialization. You are saying... 48:11 – Guest: It’s less code and it’s reasonable. If I can have less code then I’d love to have it. I think it’s cleaner b/c it’s not that much code. Most people might think blah, blah, blah, but I think it looks okay. 48:46 – John: I can see why it would be less code. 48:57 – Guest. 49:07 – John: I haven’t seen this: looking at your property initializer... Looking at your code here, Adrian... The store object itself is a reference to the NgRx store. That means you have to... To me I don’t want my app to know that NgRx is involved. I started to do this...I was creating an Angular service, which... Have you done this before? 50:33 – Guest: I have seen this function but I haven’t played with it. It makes sense. This takes it a step further. Like you say it’s perfect b/c nobody knows anything about that store, but it’s a new level. I think you have some benefits with that way of doing it, too. 51:23 – John: The one thing that sticks out is company name is your observable, then your... 52:10 – Guest: Yeah that’s good b/c it might be better! They might not even know what NgRx is, and you have a service so just use them. Yeah it’s just an observable. 52:33 – Chuck: You don’t want to see my garage. 52:44 – Guest: Some services are underrated. Like you suggested we could use them for much more. 53:01 – Guest: It was nice writing these tips. 53:19 – Chuck: What are working on now? 53:23 – Guest: Writing a new blog. 53:41 – Chuck: We will keep an eye out for it. Where do you post? 53:55 – Guest: Usually Medium, and Twitter. Search for my name and you will find me, b/c I have the same handler on all the places. 54:15 – Chuck & John: Let’s go to picks! 54:30 – Chuck is talking about future episodes and potential topics. You can vote stuff up on Trello on NgRx so we can go deeper on this topic. 55:40 – Advertisement – Fresh Books! 1:02:00 – Advertisement – Cache Fly! Links: Vue jQuery Angular C# Chuck’s Twitter John Papa’s Twitter Adrian’s Medium Adrian’s Twitter Adrian’s GitHub Adrian’s Blog Post Adrian’s Article: Testing NgRx Effects Sponsors: Angular Boot Camp Fresh Books Get a Coder Job Course Cache Fly Picks: John NgRx Data Conferences - Don’t feel mofo Charles Discord App Adrain Angular In-depth Doc Wallaby