POPULARITY
Willkommen zu einer neuen Episode unseres Podcasts, in der wir tief in die Welt der Mobilitätszahlungen eintauchen. Heute beleuchten wir die faszinierenden Entwicklungen und Debatten, die kürzlich auf dem Panel "It's all about Mobility Payments Solutions: Automotive, Mobility und InCar Commerce" auf der Payment Exchange Konferenz aufkamen. Unsere Experten erörtern, ob wir am Beginn einer revolutionären Ära in der Mobilitätsbranche stehen.
Panel: Charles Max Wood Joe Eames Aaron Frost Alyssa Nicoll Special Guests: Brian Love & Kevin Schuchard In this episode, the panelist talk with today’s special guests Brian Love & Kevin Schuchard! Brian and Kevin work at BrieBug – check out their employee profiles here! The panelist and guests talk about schematics, Angular, AST, and much more! Show Topics: 0:00 – Advertisement: Get A Coder Job! 0:50 – Chuck: Hello! Our panel today is Joe, Aaron, Alyssa, and myself. We have two guests today, and we are going to talk about schematics. Let’s dive into that! 1:46 – Guest: Schematics is a library that is coming out of Angular and the Angular Team. The guest gives a definition of Angular Schematics. 2:26 – Alyssa. 2:31 – Kevin: The functionality that you are hoping for depends on the CLI that you are on. 3:00 – Alyssa: Sorry for diving into the juicy stuff but we forgot to talk about your introductions! 3:19 – The guests talk about their backgrounds and introduce themselves to the panel and the listeners. 3:49 – Alyssa. 3:54 – Guest continues. 4:21 – Panel: Crazy and busy! 4:28 – Alyssa. 4:31 – Kevin: I am Senior Developer, and I have worked here for a few years. I have had the opportunities to write some schematics for the company and some of my own schematics. 4:53 – Alyssa: Aren’t you so proud that you are a “Senior Developer”?! 5:10 – Guest and panelists go back-and-forth. 6:23 – Guests: We want people to be familiar with schematics and start their journey with schematics. 6:50 – Panel: It’s kind of trippy isn’t that right? 7:00 – Guest: Yeah there are hurdles to learning schematics at first – for sure. 7:22 – Alyssa: What is AST? 7:29 – Guest gives a definition of AST and goes into much detail about this. 10:00 – Alyssa: I think I understand, now, what AST is. Thanks. Alyssa asks the guests a question. 10:14 – Guest answers the question about AST. 10:51 – Guest continues. 11:27 – Panelist is talking about the AST and schematics. 12:03 – Guest: You can read the whole file and using the AST you can figure out where you went to enter the text. 12:25 – Alyssa asks a question. 12:28 – Guest: We are not the developers of schematics, but we are just here to share our knowledge. I want to be super clear here. 13:39 – Panelist talks about schematics, CLI, and AST. 14:18 – Guest: You don’t have to know all about AST and everything there is to know to get into it. You can build schematics w/o getting into AST. Just to be clear. 14:39 – Alyssa asks a follow-up question. 14:41 – Guest continues. 15:57 – Guest: AST has been around for a while – it’s not a new thing it’s kind of an old thing. Guest talks about tools (Code Shift) that Facebook has built that is related to this topic. 17:22 – Guest: Yeah AST has been around for a while. 17:28 – Alyssa asks a question about Code Shift. 17:36 – Guest. 18:21 – Panel and guest go back-and-forth. 19:51 – Alyssa: You said you really don’t need to get into AST to do schematics – right? (Yes.) Alyssa asks a question. 20:19 – Guest: There are two pieces with schematics and that’s adding of new files and you can decide which pieces of the templates you want to be compiled. 21:58 – Chuck: For schematics you mentioned you could drop strings in. Chuck asks a question. 22:29 – Guest answers the question with a hypothetical situation. 23:09 – Chuck: I read the article you wrote and I have a question about your article. Tell me about the tree? 23:29 – Guest talks about the tree or aka the host. 25:40 – Guest: The tree is a virtual kind of context and it’s not committing all of the changes to the file system. Whether that is adding, deleting, or updating these files. 26:10 – Chuck: Makes sense to me. 26:15 – Guest continues talking about schematics. 26:53 – Alyssa: Yeoman is a replacement for schematics? 27:05 – Guest: It’s a lightweight alternative. 27:33 – Advertisement: Angular Boot Camp 28:10 – Chuck: How does one build a schematic? 28:16 – Guest answers the question. 30:34 – Panel: What’s the latest thing you’ve built? Talk about that, please. 30:40 – Guest: It’s a schematic and took what we’ve learned to set you up for a starter project. It starts with a blank project. 32:57 – Panel: You are just talking some lessons learned and you are saying this is how Kevin says to do it. You’ve packaged that up 33:26 – Guest: Yep I have found things that work and there isn’t any magic but put these practices together and made a repository to help testing and making schematics. 33:55 – Panel and guests go back-and-forth. 34:20 – Chuck: Let’s say I’ve built this schematic and Frosty wants to share it with his friends. How do we do that? How do you share it? Is there some component that you’ve built? 35:06 – Guest: It depends on what you are doing with it. 36:14 – Chuck: For mass production, though? 36:25 – Guest: I think Chuck is wondering about discoverability. Guest continues and he mentions prettier, extensions, among other things. 37:18 – Guest: I think it’s my favorite about schematics and it’s Kevin’s. 37:40 – Guest. 38:20 – Guest continues talking about schematics and ng-conf. 38:57 – Guest talks about libraries. 40:12 – Chuck: Anything else? Do you NPM install it and it’s just there? 40:29 – Guest: There are 2 ways to go about it. 53:05 – Fresh Books! END – CacheFly! Links: Vue jQuery Angular JavaScript Python React Cypress Yeoman Apache Groovy GitHub: prettier NG Conf Brian Love’s Website Kevin Schuchard’s LinkedIn BrieBug Blog Angular Schematics Tutorial Testing Schematics with a Sandbox + starter project GitHub: Schematic Starter Getting started blog post by Hans Schematics by Manfred Steyer Angular and Material CLI schematics 1 Angular and Material CLI schematics 2 AST Explorer Evening of Angular Example Schematic project with Sandbox: (Written by Kevin) https://github.com/briebug/jest-schematic https://github.com/schuchard/prettier-schematic https://github.com/briebug/ngrx-entity-schematic https://github.com/blove/schematics Sponsors: Angular Boot Camp Cache Fly Get A Coder Job Picks: Joe Brian Love BrieBug Schematics NGConf. Minified Aaron Ice Fishing Smoking Trout Joe Eames as Dungeon Master for DND NPM JS Survey Charles Alexa Briefing EntreProgrammers.com KanBanflow Pomodoro Technique Kevin Angular Material Open Source Projects Brian Angular.io Visits on Twitter Angular Community Jesse Sanders An evening of Angular Event
Panel: Eric Berry Dave Kimura Nate Hopkins Charles Max Wood Special Guest: Vladimir Dem In this episode of Ruby Rogues, the panel talks with Vladimir Dem who is a Ruby developer and currently lives in Brooklyn, New York. Today, the panelists and guest talk about cables, concurrency, and Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:02 – Chuck: Hello! The panel today is Eric, Dave, Nate, and myself! Our guest is Vlad! 1:30 – Guest: My name is Vladimir, but people call me Vlad. I have been writing Ruby since 2013 for about 4.5 years. Before that I was a PHP, JavaScript developer among other languages. I am mostly Erlang and Ruby now. 2:29 – Panel asks Vlad a question. 3:29 – Guest: Yeah something like that. I call it a different server b/c we still use the code base but we do not do anything related to web sockets and connections. 4:20 – Panel: If you wanted to take a normal action cables setup what steps would you have to go through to convert that over to also use the anycable server? 5:21 – Guest answers the question. 7:31 – Chuck: This sounds complicated and a bit of work. When I look at this I think: I have a tiny app is it worth it? When does it become worth it? 7:52 – Guest: Definitely not for the tiny app. 8:50 – Panel: You use it when it makes sense. Overcomplicating your infrastructure doesn’t make sense. 9:27 – Guest: That’s the idea. 10:28 – Panel. 11:05 – Guest: The question really is how many connections you have and how long-lived they are? 13:09 – Panel: If I move my project over to anycable how much new code am I going to have to write? 13:28 – Guest answers the question. 15:52 – Panel: What’s the update been like for anycable and how many users use anycable? 16:05 – Guest: I really don’t have statistics. I hear people at conferences say that they use anycable, but no real statistics right now. I would like to know these numbers, but no idea. 16:30 – Panel: ...is that the time to consider using anycable? 17:05 – Guest: That’s a good point to make. 18:44 – Panel: How is the initial handshake time with anycable? Is there any difference with anycable in that sense? 19:05 – Guest answers the question. 22:49 – Chuck: Can you define a couple of terms for me? I am hearing terms like: concurrency and real time and others? 23:00 – Guest: Good point. What is real time? The guest continues to define these terms. 28:10 – Fresh Books! 29:10 – Chuck: Ruby 3 is supposed to solve some of these problems. Can you talk about some of those? 29:46 – Guest: Interesting question and I’ve been asked about this before. 35:14 – Panel: Did you say there was some activity around trying to reduce the memory consumption for thread? 35:25 – Guest answers the question. 36:14 – Panel: Vlad, you are spread from backend to fronted and you’ve mentioned Phoenix Live Vue. Can I pick your brain about it? 36:39 – Guest answers the question. 38:48 – Panel: It seems like one of the core tenants is empowering small teams to compete with larger teams. I have high hopes to keep small teams competitive. 39:50 – Guest: Yes, that’s the idea of Rails and Ruby itself to build something and try something and perhaps fail. 40:57 – Panelist mentions Erlang, anycable, and concurrency. 41:14 – Guest: We are working on administration functionality and we want to build something fast. 44:40 – Panel: That’s the interesting thing about turbo links cause I think it was a marketing fail. You have to invest time to learn how to use it and how to use it properly. 45:44 – Guest: I don’t have a good guide for turbo links. 46:00 – Chuck: Anything else we want to talk about? 46:10 – Guest: Two more things I want to mention. 54:02 – Advertisement: Get A Coder Job! 54:35 – Picks! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show Angular DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Faye-Websocket-Ruby Anycable EMx 020 Episode Entreprogrammers: Episode 248 Socketry The Rails Doctrine Walmart: Invisible Glass Bose Wireless Headphones Netflix: Newsies / Broadway musical KanbanFlow Advent of Code Heroku Deployment Guest’s Twitter Guest’s Dev.to Guest’s GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Dave Invisible Glass Eric Bose Quiet Comfort Headphones Nate The Rails Doctrine Newsies Charles Kanban Flow EntreProgrammers The pomodoro technique masterhunt.com/devchat Vlad Advent of Code Any Cable
Panel: Eric Berry Dave Kimura Nate Hopkins Charles Max Wood Special Guest: Vladimir Dem In this episode of Ruby Rogues, the panel talks with Vladimir Dem who is a Ruby developer and currently lives in Brooklyn, New York. Today, the panelists and guest talk about cables, concurrency, and Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:02 – Chuck: Hello! The panel today is Eric, Dave, Nate, and myself! Our guest is Vlad! 1:30 – Guest: My name is Vladimir, but people call me Vlad. I have been writing Ruby since 2013 for about 4.5 years. Before that I was a PHP, JavaScript developer among other languages. I am mostly Erlang and Ruby now. 2:29 – Panel asks Vlad a question. 3:29 – Guest: Yeah something like that. I call it a different server b/c we still use the code base but we do not do anything related to web sockets and connections. 4:20 – Panel: If you wanted to take a normal action cables setup what steps would you have to go through to convert that over to also use the anycable server? 5:21 – Guest answers the question. 7:31 – Chuck: This sounds complicated and a bit of work. When I look at this I think: I have a tiny app is it worth it? When does it become worth it? 7:52 – Guest: Definitely not for the tiny app. 8:50 – Panel: You use it when it makes sense. Overcomplicating your infrastructure doesn’t make sense. 9:27 – Guest: That’s the idea. 10:28 – Panel. 11:05 – Guest: The question really is how many connections you have and how long-lived they are? 13:09 – Panel: If I move my project over to anycable how much new code am I going to have to write? 13:28 – Guest answers the question. 15:52 – Panel: What’s the update been like for anycable and how many users use anycable? 16:05 – Guest: I really don’t have statistics. I hear people at conferences say that they use anycable, but no real statistics right now. I would like to know these numbers, but no idea. 16:30 – Panel: ...is that the time to consider using anycable? 17:05 – Guest: That’s a good point to make. 18:44 – Panel: How is the initial handshake time with anycable? Is there any difference with anycable in that sense? 19:05 – Guest answers the question. 22:49 – Chuck: Can you define a couple of terms for me? I am hearing terms like: concurrency and real time and others? 23:00 – Guest: Good point. What is real time? The guest continues to define these terms. 28:10 – Fresh Books! 29:10 – Chuck: Ruby 3 is supposed to solve some of these problems. Can you talk about some of those? 29:46 – Guest: Interesting question and I’ve been asked about this before. 35:14 – Panel: Did you say there was some activity around trying to reduce the memory consumption for thread? 35:25 – Guest answers the question. 36:14 – Panel: Vlad, you are spread from backend to fronted and you’ve mentioned Phoenix Live Vue. Can I pick your brain about it? 36:39 – Guest answers the question. 38:48 – Panel: It seems like one of the core tenants is empowering small teams to compete with larger teams. I have high hopes to keep small teams competitive. 39:50 – Guest: Yes, that’s the idea of Rails and Ruby itself to build something and try something and perhaps fail. 40:57 – Panelist mentions Erlang, anycable, and concurrency. 41:14 – Guest: We are working on administration functionality and we want to build something fast. 44:40 – Panel: That’s the interesting thing about turbo links cause I think it was a marketing fail. You have to invest time to learn how to use it and how to use it properly. 45:44 – Guest: I don’t have a good guide for turbo links. 46:00 – Chuck: Anything else we want to talk about? 46:10 – Guest: Two more things I want to mention. 54:02 – Advertisement: Get A Coder Job! 54:35 – Picks! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show Angular DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Faye-Websocket-Ruby Anycable EMx 020 Episode Entreprogrammers: Episode 248 Socketry The Rails Doctrine Walmart: Invisible Glass Bose Wireless Headphones Netflix: Newsies / Broadway musical KanbanFlow Advent of Code Heroku Deployment Guest’s Twitter Guest’s Dev.to Guest’s GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Dave Invisible Glass Eric Bose Quiet Comfort Headphones Nate The Rails Doctrine Newsies Charles Kanban Flow EntreProgrammers The pomodoro technique masterhunt.com/devchat Vlad Advent of Code Any Cable
Panel: Charles Max Wood Joe Eames Aaron Frost Alyssa Nicoll Special Guests: Brian Love & Kevin Schuchard In this episode, the panelist talk with today’s special guests Brian Love & Kevin Schuchard! Brian and Kevin work at BrieBug – check out their employee profiles here! The panelist and guests talk about schematics, Angular, AST, and much more! Show Topics: 0:00 – Advertisement: Get A Coder Job! 0:50 – Chuck: Hello! Our panel today is Joe, Aaron, Alyssa, and myself. We have two guests today, and we are going to talk about schematics. Let’s dive into that! 1:46 – Guest: Schematics is a library that is coming out of Angular and the Angular Team. The guest gives a definition of Angular Schematics. 2:26 – Alyssa. 2:31 – Kevin: The functionality that you are hoping for depends on the CLI that you are on. 3:00 – Alyssa: Sorry for diving into the juicy stuff but we forgot to talk about your introductions! 3:19 – The guests talk about their backgrounds and introduce themselves to the panel and the listeners. 3:49 – Alyssa. 3:54 – Guest continues. 4:21 – Panel: Crazy and busy! 4:28 – Alyssa. 4:31 – Kevin: I am Senior Developer, and I have worked here for a few years. I have had the opportunities to write some schematics for the company and some of my own schematics. 4:53 – Alyssa: Aren’t you so proud that you are a “Senior Developer”?! 5:10 – Guest and panelists go back-and-forth. 6:23 – Guests: We want people to be familiar with schematics and start their journey with schematics. 6:50 – Panel: It’s kind of trippy isn’t that right? 7:00 – Guest: Yeah there are hurdles to learning schematics at first – for sure. 7:22 – Alyssa: What is AST? 7:29 – Guest gives a definition of AST and goes into much detail about this. 10:00 – Alyssa: I think I understand, now, what AST is. Thanks. Alyssa asks the guests a question. 10:14 – Guest answers the question about AST. 10:51 – Guest continues. 11:27 – Panelist is talking about the AST and schematics. 12:03 – Guest: You can read the whole file and using the AST you can figure out where you went to enter the text. 12:25 – Alyssa asks a question. 12:28 – Guest: We are not the developers of schematics, but we are just here to share our knowledge. I want to be super clear here. 13:39 – Panelist talks about schematics, CLI, and AST. 14:18 – Guest: You don’t have to know all about AST and everything there is to know to get into it. You can build schematics w/o getting into AST. Just to be clear. 14:39 – Alyssa asks a follow-up question. 14:41 – Guest continues. 15:57 – Guest: AST has been around for a while – it’s not a new thing it’s kind of an old thing. Guest talks about tools (Code Shift) that Facebook has built that is related to this topic. 17:22 – Guest: Yeah AST has been around for a while. 17:28 – Alyssa asks a question about Code Shift. 17:36 – Guest. 18:21 – Panel and guest go back-and-forth. 19:51 – Alyssa: You said you really don’t need to get into AST to do schematics – right? (Yes.) Alyssa asks a question. 20:19 – Guest: There are two pieces with schematics and that’s adding of new files and you can decide which pieces of the templates you want to be compiled. 21:58 – Chuck: For schematics you mentioned you could drop strings in. Chuck asks a question. 22:29 – Guest answers the question with a hypothetical situation. 23:09 – Chuck: I read the article you wrote and I have a question about your article. Tell me about the tree? 23:29 – Guest talks about the tree or aka the host. 25:40 – Guest: The tree is a virtual kind of context and it’s not committing all of the changes to the file system. Whether that is adding, deleting, or updating these files. 26:10 – Chuck: Makes sense to me. 26:15 – Guest continues talking about schematics. 26:53 – Alyssa: Yeoman is a replacement for schematics? 27:05 – Guest: It’s a lightweight alternative. 27:33 – Advertisement: Angular Boot Camp 28:10 – Chuck: How does one build a schematic? 28:16 – Guest answers the question. 30:34 – Panel: What’s the latest thing you’ve built? Talk about that, please. 30:40 – Guest: It’s a schematic and took what we’ve learned to set you up for a starter project. It starts with a blank project. 32:57 – Panel: You are just talking some lessons learned and you are saying this is how Kevin says to do it. You’ve packaged that up 33:26 – Guest: Yep I have found things that work and there isn’t any magic but put these practices together and made a repository to help testing and making schematics. 33:55 – Panel and guests go back-and-forth. 34:20 – Chuck: Let’s say I’ve built this schematic and Frosty wants to share it with his friends. How do we do that? How do you share it? Is there some component that you’ve built? 35:06 – Guest: It depends on what you are doing with it. 36:14 – Chuck: For mass production, though? 36:25 – Guest: I think Chuck is wondering about discoverability. Guest continues and he mentions prettier, extensions, among other things. 37:18 – Guest: I think it’s my favorite about schematics and it’s Kevin’s. 37:40 – Guest. 38:20 – Guest continues talking about schematics and ng-conf. 38:57 – Guest talks about libraries. 40:12 – Chuck: Anything else? Do you NPM install it and it’s just there? 40:29 – Guest: There are 2 ways to go about it. 53:05 – Fresh Books! END – CacheFly! Links: Vue jQuery Angular JavaScript Python React Cypress Yeoman Apache Groovy GitHub: prettier NG Conf Brian Love’s Website Kevin Schuchard’s LinkedIn BrieBug Blog Angular Schematics Tutorial Testing Schematics with a Sandbox + starter project GitHub: Schematic Starter Getting started blog post by Hans Schematics by Manfred Steyer Angular and Material CLI schematics 1 Angular and Material CLI schematics 2 AST Explorer Evening of Angular Example Schematic project with Sandbox: (Written by Kevin) https://github.com/briebug/jest-schematic https://github.com/schuchard/prettier-schematic https://github.com/briebug/ngrx-entity-schematic https://github.com/blove/schematics Sponsors: Angular Boot Camp Cache Fly Get A Coder Job Picks: Joe Brian Love BrieBug Schematics NGConf. Minified Aaron Ice Fishing Smoking Trout Joe Eames as Dungeon Master for DND NPM JS Survey Charles Alexa Briefing EntreProgrammers.com KanBanflow Pomodoro Technique Kevin Angular Material Open Source Projects Brian Angular.io Visits on Twitter Angular Community Jesse Sanders An evening of Angular Event
Panel: Charles Max Wood Joe Eames Aaron Frost Alyssa Nicoll Special Guests: Brian Love & Kevin Schuchard In this episode, the panelist talk with today’s special guests Brian Love & Kevin Schuchard! Brian and Kevin work at BrieBug – check out their employee profiles here! The panelist and guests talk about schematics, Angular, AST, and much more! Show Topics: 0:00 – Advertisement: Get A Coder Job! 0:50 – Chuck: Hello! Our panel today is Joe, Aaron, Alyssa, and myself. We have two guests today, and we are going to talk about schematics. Let’s dive into that! 1:46 – Guest: Schematics is a library that is coming out of Angular and the Angular Team. The guest gives a definition of Angular Schematics. 2:26 – Alyssa. 2:31 – Kevin: The functionality that you are hoping for depends on the CLI that you are on. 3:00 – Alyssa: Sorry for diving into the juicy stuff but we forgot to talk about your introductions! 3:19 – The guests talk about their backgrounds and introduce themselves to the panel and the listeners. 3:49 – Alyssa. 3:54 – Guest continues. 4:21 – Panel: Crazy and busy! 4:28 – Alyssa. 4:31 – Kevin: I am Senior Developer, and I have worked here for a few years. I have had the opportunities to write some schematics for the company and some of my own schematics. 4:53 – Alyssa: Aren’t you so proud that you are a “Senior Developer”?! 5:10 – Guest and panelists go back-and-forth. 6:23 – Guests: We want people to be familiar with schematics and start their journey with schematics. 6:50 – Panel: It’s kind of trippy isn’t that right? 7:00 – Guest: Yeah there are hurdles to learning schematics at first – for sure. 7:22 – Alyssa: What is AST? 7:29 – Guest gives a definition of AST and goes into much detail about this. 10:00 – Alyssa: I think I understand, now, what AST is. Thanks. Alyssa asks the guests a question. 10:14 – Guest answers the question about AST. 10:51 – Guest continues. 11:27 – Panelist is talking about the AST and schematics. 12:03 – Guest: You can read the whole file and using the AST you can figure out where you went to enter the text. 12:25 – Alyssa asks a question. 12:28 – Guest: We are not the developers of schematics, but we are just here to share our knowledge. I want to be super clear here. 13:39 – Panelist talks about schematics, CLI, and AST. 14:18 – Guest: You don’t have to know all about AST and everything there is to know to get into it. You can build schematics w/o getting into AST. Just to be clear. 14:39 – Alyssa asks a follow-up question. 14:41 – Guest continues. 15:57 – Guest: AST has been around for a while – it’s not a new thing it’s kind of an old thing. Guest talks about tools (Code Shift) that Facebook has built that is related to this topic. 17:22 – Guest: Yeah AST has been around for a while. 17:28 – Alyssa asks a question about Code Shift. 17:36 – Guest. 18:21 – Panel and guest go back-and-forth. 19:51 – Alyssa: You said you really don’t need to get into AST to do schematics – right? (Yes.) Alyssa asks a question. 20:19 – Guest: There are two pieces with schematics and that’s adding of new files and you can decide which pieces of the templates you want to be compiled. 21:58 – Chuck: For schematics you mentioned you could drop strings in. Chuck asks a question. 22:29 – Guest answers the question with a hypothetical situation. 23:09 – Chuck: I read the article you wrote and I have a question about your article. Tell me about the tree? 23:29 – Guest talks about the tree or aka the host. 25:40 – Guest: The tree is a virtual kind of context and it’s not committing all of the changes to the file system. Whether that is adding, deleting, or updating these files. 26:10 – Chuck: Makes sense to me. 26:15 – Guest continues talking about schematics. 26:53 – Alyssa: Yeoman is a replacement for schematics? 27:05 – Guest: It’s a lightweight alternative. 27:33 – Advertisement: Angular Boot Camp 28:10 – Chuck: How does one build a schematic? 28:16 – Guest answers the question. 30:34 – Panel: What’s the latest thing you’ve built? Talk about that, please. 30:40 – Guest: It’s a schematic and took what we’ve learned to set you up for a starter project. It starts with a blank project. 32:57 – Panel: You are just talking some lessons learned and you are saying this is how Kevin says to do it. You’ve packaged that up 33:26 – Guest: Yep I have found things that work and there isn’t any magic but put these practices together and made a repository to help testing and making schematics. 33:55 – Panel and guests go back-and-forth. 34:20 – Chuck: Let’s say I’ve built this schematic and Frosty wants to share it with his friends. How do we do that? How do you share it? Is there some component that you’ve built? 35:06 – Guest: It depends on what you are doing with it. 36:14 – Chuck: For mass production, though? 36:25 – Guest: I think Chuck is wondering about discoverability. Guest continues and he mentions prettier, extensions, among other things. 37:18 – Guest: I think it’s my favorite about schematics and it’s Kevin’s. 37:40 – Guest. 38:20 – Guest continues talking about schematics and ng-conf. 38:57 – Guest talks about libraries. 40:12 – Chuck: Anything else? Do you NPM install it and it’s just there? 40:29 – Guest: There are 2 ways to go about it. 53:05 – Fresh Books! END – CacheFly! Links: Vue jQuery Angular JavaScript Python React Cypress Yeoman Apache Groovy GitHub: prettier NG Conf Brian Love’s Website Kevin Schuchard’s LinkedIn BrieBug Blog Angular Schematics Tutorial Testing Schematics with a Sandbox + starter project GitHub: Schematic Starter Getting started blog post by Hans Schematics by Manfred Steyer Angular and Material CLI schematics 1 Angular and Material CLI schematics 2 AST Explorer Evening of Angular Example Schematic project with Sandbox: (Written by Kevin) https://github.com/briebug/jest-schematic https://github.com/schuchard/prettier-schematic https://github.com/briebug/ngrx-entity-schematic https://github.com/blove/schematics Sponsors: Angular Boot Camp Cache Fly Get A Coder Job Picks: Joe Brian Love BrieBug Schematics NGConf. Minified Aaron Ice Fishing Smoking Trout Joe Eames as Dungeon Master for DND NPM JS Survey Charles Alexa Briefing EntreProgrammers.com KanBanflow Pomodoro Technique Kevin Angular Material Open Source Projects Brian Angular.io Visits on Twitter Angular Community Jesse Sanders An evening of Angular Event
Panel: Eric Berry Dave Kimura Nate Hopkins Charles Max Wood Special Guest: Vladimir Dem In this episode of Ruby Rogues, the panel talks with Vladimir Dem who is a Ruby developer and currently lives in Brooklyn, New York. Today, the panelists and guest talk about cables, concurrency, and Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:02 – Chuck: Hello! The panel today is Eric, Dave, Nate, and myself! Our guest is Vlad! 1:30 – Guest: My name is Vladimir, but people call me Vlad. I have been writing Ruby since 2013 for about 4.5 years. Before that I was a PHP, JavaScript developer among other languages. I am mostly Erlang and Ruby now. 2:29 – Panel asks Vlad a question. 3:29 – Guest: Yeah something like that. I call it a different server b/c we still use the code base but we do not do anything related to web sockets and connections. 4:20 – Panel: If you wanted to take a normal action cables setup what steps would you have to go through to convert that over to also use the anycable server? 5:21 – Guest answers the question. 7:31 – Chuck: This sounds complicated and a bit of work. When I look at this I think: I have a tiny app is it worth it? When does it become worth it? 7:52 – Guest: Definitely not for the tiny app. 8:50 – Panel: You use it when it makes sense. Overcomplicating your infrastructure doesn’t make sense. 9:27 – Guest: That’s the idea. 10:28 – Panel. 11:05 – Guest: The question really is how many connections you have and how long-lived they are? 13:09 – Panel: If I move my project over to anycable how much new code am I going to have to write? 13:28 – Guest answers the question. 15:52 – Panel: What’s the update been like for anycable and how many users use anycable? 16:05 – Guest: I really don’t have statistics. I hear people at conferences say that they use anycable, but no real statistics right now. I would like to know these numbers, but no idea. 16:30 – Panel: ...is that the time to consider using anycable? 17:05 – Guest: That’s a good point to make. 18:44 – Panel: How is the initial handshake time with anycable? Is there any difference with anycable in that sense? 19:05 – Guest answers the question. 22:49 – Chuck: Can you define a couple of terms for me? I am hearing terms like: concurrency and real time and others? 23:00 – Guest: Good point. What is real time? The guest continues to define these terms. 28:10 – Fresh Books! 29:10 – Chuck: Ruby 3 is supposed to solve some of these problems. Can you talk about some of those? 29:46 – Guest: Interesting question and I’ve been asked about this before. 35:14 – Panel: Did you say there was some activity around trying to reduce the memory consumption for thread? 35:25 – Guest answers the question. 36:14 – Panel: Vlad, you are spread from backend to fronted and you’ve mentioned Phoenix Live Vue. Can I pick your brain about it? 36:39 – Guest answers the question. 38:48 – Panel: It seems like one of the core tenants is empowering small teams to compete with larger teams. I have high hopes to keep small teams competitive. 39:50 – Guest: Yes, that’s the idea of Rails and Ruby itself to build something and try something and perhaps fail. 40:57 – Panelist mentions Erlang, anycable, and concurrency. 41:14 – Guest: We are working on administration functionality and we want to build something fast. 44:40 – Panel: That’s the interesting thing about turbo links cause I think it was a marketing fail. You have to invest time to learn how to use it and how to use it properly. 45:44 – Guest: I don’t have a good guide for turbo links. 46:00 – Chuck: Anything else we want to talk about? 46:10 – Guest: Two more things I want to mention. 54:02 – Advertisement: Get A Coder Job! 54:35 – Picks! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show Angular DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Faye-Websocket-Ruby Anycable EMx 020 Episode Entreprogrammers: Episode 248 Socketry The Rails Doctrine Walmart: Invisible Glass Bose Wireless Headphones Netflix: Newsies / Broadway musical KanbanFlow Advent of Code Heroku Deployment Guest’s Twitter Guest’s Dev.to Guest’s GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Dave Invisible Glass Eric Bose Quiet Comfort Headphones Nate The Rails Doctrine Newsies Charles Kanban Flow EntreProgrammers The pomodoro technique masterhunt.com/devchat Vlad Advent of Code Any Cable
Panel: Mark Ericksen Josh Adams Special Guest: Edgar Pino In this episode of Elixir Mix, the panel talks with Edgar Pino who talks with the panel about the latest version of Ecto! They discuss Ecto’s new features and how easy of a transition it was to go from the previous to the newest version. Edgar Pino is a software engineer who currently resides in Utah! Check out today’s episode! Show Topics: 0:00 – Advertisement: Get A Coder Job! 1:04 – Mark: Hello! Please give us your background? 1:16 – Guest: I have been in Elixir for the past year or two and I have been living in Utah. 1:48 – Mark: I love the nature and state parks. Winter is coming, so I hope you are ready! 1:58 – Guest: Winter...hopefully it will be great! 2:20 – Panelists and guest go back-and-forth. 2:30 – Mark: Let’s talk about your blog posts about Ecto. What are your new announcements? 2:52 – Guest: Our new version was released a few weeks ago. 3:32 – Panel. 3:38 – The guest talks about the old and new versions of Ecto. 4:03 – Panel: What is new and how is this going to affect me (the new version)? 4:11 – Panel: The transition was pretty painless for me. The only change was the breaking-up of the adapter ad also the timestamp bit. That was it. 4:34 – Panel: Yeah that micro-timestamp surprised me for a second, but it wasn’t that bad after all. 4:52 – Guest: Yeah it was painless for me, too. 5:19 – Panel: Edgar can you talk about the change and what they did with the timestamps? 5:32 – The guest answers the question. 5:54 – Panel: Elm opted to use the micro-millisecond, too. Time zones aren’t a thing. 6:24 – Mark. 7:08 – Panel: My tests are the only reason why I care about the millisecond. 7:21 – Mark: With the upgrade don’t do what I did. Mark talks about how he updated and the issues he had. 8:47 – Guest: Pattern matching? 8:53 – Mark: Yep that sort of stuff. I didn’t need to do it and it was a learning experience. Edgar, please give us an introduction to the blog posts? Why did you want to document it? 9:18 – Guest: I always used Ecto with Phoenix but started learning Ecto by itself. I jotted down notes that I thought was interesting. That’s how it started. 10:17 – Mark: See links in the show notes. Using a gen to use the repo – this is one thing that I didn’t know was an option. 10:46 – Guest. 11:01 – Mark asks a question. 11:10 – Guest: Not really PHP applications but listening to web messages and hot topics but you are doing the database and serving data... 11:40 – Guest talks about Ecto and the different versions and features. 12:09 – Mark chimes-in. 12:23 – Panel: Yep – it’s under the hood and it’s for business logic and doesn’t have a web piece. Stop writing tings for the web – it’s a fad. 12:50 – Mark: It’s an umbrella and saw this through the Phoenix generators. 13:54 – Guest talks about web applications. 14:06 – Mark: Let’s talk about schema and databases? 14:23 – Panelist chimes-in. 14:51 – Panelists and guest talk about schemas, apps, and more. Check it out here. 16:13 – Guest: You will get the data and pass it in as a structure and... 16:23 – Mark: Here is a map of what I’d like you to do on my behalf. It goes to a chain set and I will turn it into a string and this is why it’s failed. 17:25 – Panel. 17:31 – Mark: It’s not hard and it’s pretty easy. Let’s talk about blog posts. 18:10 – Panel. 18:22 – Mark: I use Absinthe in the library in Elixir to support GraphQL. 18:50 – Panel. 19:06 – Guest: The total number of results and only once did I need a more complicated thing. 19:34 – Mark: I haven’t had a need for those. 20:01 – Panelists and guests talk about the hypothetical situations where and how they would use certain features for said situations. 20:23 – Guest: You don’t have to understand right out-of-the-box. 20:40 – Panel: Have you used stored functions as meta-columns in an Ecto schema? 20:48 – Panelist explains. 21:24 – Guest: I have used them in the past and now I don’t. For me it was hard to debug – maybe it’s just me. 21:43 – Panel: I was introduced to them through a colleague of mine. 21:53 – Mark chimes-in and talks about him being a DOT NET developer. 22:18 – Panelist chime-in, too! 22:50 – Mark. 23:16 – Panel: It was an awful time and not a good idea. 70 pages! Debugging it was hard. 23:35 – Mark: That experience was apart of that burn that I had before. I wanted to stay far away from it as far as I could. 24:00 – Panel: When I was doing it in DOT NET we didn’t have migrations. 24:12 – Panelist continues. 24:32 – Guest: I wonder if... 24:37 – Panel: It’s just a sequel – it’s not just an Ecto specific feature. 24:48 – Guest. 24:53 – FreshBooks! 26:01 – Mark: Edgar you were interested also in HOW Ecto was built. What experience did you have? 26:21 – Guest answers the question. 28:22 – Panel: No you typed REPO there. 28:30 – Guest: Whenever you save or make an update it’s a method. Unlike Ecto you have to all it something else. 28:47 – Panel: Hey let me get those article posted and someone did it in Loop and that is a lot of queries. 29:03 – Guest: Yeah that’s a good point. 29:45 – Mark: Something I’ve noticed is that they talk about performance improvements and better memory usage. Go read about it- it’s great. They talk about HOW Ecto is working and what is behind the scenes. 31:15 – Mark: Another feature that I have seen is UPSERTS. 31:50 – Guest talks about UPSERTS, too. 32:34 – Mark: Say I have a system that has 3 servers and it’s rolling updates (it will take down one and put up the new code, etc. and it will cycle) one thing they added was a lock on the migration table. I don’t know if you’ve had this – once it hits production data it is slow. Mark continues. 33:20 – Panel: I think it was just luck of the draw. 33:30 – Mark continues. 33:57 – The guest talks about his experience with the above-mentioned scenario. 34:20 – Mark: I like that you both have had goo experiences with your upgrades. I want people to be excited and know that there are great features out there. 34:49 – Guest: Yes, I have found that the blog post is helpful. It’s good to get adapted to the new changes. 35:17 – Panel: Yeah I normally don’t have teasers up to the actual upgrade. 35:28 – Panel: The community is nice and people made a good effort to communicate and help people. They did a GOOD job of helping people to feel comfortable within the transition from one version to the next! 41:37 – Ad: Lootcrate.com END – CacheFly! Links: Ruby Elixir Elixir: GenServer GenServers Elm JavaScript Visual Studio Code React Edgar Pino A sneak peek at Ecto 3 Ecto Active Record Pattern Repository Sponsors: Loot Crate Get a Coder Job! Fresh Books CacheFly Picks: Mark Plex Josh This Erlang Life Guest Ecto Documentation! Edgar Pino – My blog!
Panel: Eric Berry Dave Kimura David Richards Charles Max Wood In this episode of Ruby Rogues, the panelists talk amongst themselves on today’s topic, which is “speculation on frameworks.” They consider where the tech community currently is right now, and where it’s heading towards the future. They bring-up topics such as: Rails, Ruby, Angular, Agile, and much more. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:47 – Chuck: Check out the DevRev 2:08 – Panel: A topic about “speculation” would be great today. What are we seeing in the community: what we like/don’t like, and what would you want to change? He talks about action text, JavaScript framework, and more. 3:41 – Chuck: Service-side rendering is what we talked about in the past. Divya does this with service–side rendering. For content sites that approach makes a lot of sense. I have playing around with this for the past week or so. I was taking it to rendering it to text. 4:39 – Panel: Yeah, that’s the way to go. 5:29 – Chuck: You are talking about a fully side UI. 5:45 – Panel: I thought it was just my age so I am glad we are talking about this. The hip kids want to make these beautiful frontend sites. I want to keep it simple and then justify more later. I guess I would never be as hip but as long as my stuff gets out there – that’s all that matters to me. 6:28 – Panel: Yeah don’t get me wrong...nobody will want to develop your product if it was built 30 years ago. If it is a startup you want it to look good with a nice UI. Nobody will purchase if it looks outdated. How much maintenance do I want to invest into this? Why add another component into that if you cannot maintain it. 7:56 – Chuck: Yeah I have come into this issue while building the Podcast Service that I am creating. 8:25 – Panel: These are good frameworks and they feel great. I don’t realize the complexity that I am taking on sometimes. I have a lot of complexity on my hands: did I need it? 9:02 – Chuck: Sometimes my problem is that I am trying to pull it in after-the-fact. Like the forms to animate or this and that have to slide in. I want a natural feel to the UX. I looked at React and then I didn’t go that way. I have been podcasting about Angular for 4 years, but it was a no-go for my project. For my solution – it makes sense to just get it going and get it rolling. 10:45 – Panel: When we do use Action Vue we are prone to get lazy. What I mean by that is making database calls. 12:01 – Panel: You can think: Inside-Out! That creates an identity around the project. If I can think of that before going in, then everyone knows what we are doing and what their role is. It’s really obvious. Simple things grow into bigger things. I am a fan of service-side objects. It’s a daily work process. That feels good to me and it’s programmatic for me. 13:24 – Chuck: You aren’t saying: I don’t want or I don’t need ... what you are saying is: I will get this tool when I need it. 13:45 – Panel: You can say: “Hey this is what we are going to do and WHY we are going to do it.” It’s nice to come back to old projects and to see that it’s still solid. It’s nice to see that and people own that software and didn’t have to keep updating. 15:06 – Chuck: It reminds me of the Agile development stuff. The approach between Angular and React and Vue are fairly different. They are reasonably different. There will be tradeoffs between which one to use. When you are making that decision then you can make the appropriate decision on that. 16:10 – Panel: I remember in the prior years when the Rails community grew their own people and you were a RAILS person; now it’s you’re a WEB person. 17:43 – Panel: In a lot of cases it’s good to see what’s out there and to see what’s new; especially early on if they end up being ahead of their time. Then you are an early pioneer in that area. There’s nothing wrong with that, but when you are introducing new things into your core you are running into unforeseeable risks. I am not an early adapter of React, but I know enough of the pros and cons of the framework. 19:48 – Panel: I like that. Maybe I “should” adapt that framework and maybe I am not the right person to do so. 21:06 – Chuck: Dave brought us to a new topic and that’s: being an early adapter. Some people want a name, some people want to invent stuff and so many more reasons “why.” I don’t want to “poo poo” the idea but you need to know WHY. 21:48 – Panel: The cost of developers is A LOT. I just think if I was building a house and I had that expense then I better get a really nice house out of it. I want to do a good job and that’s important. On the business – side they have to rely on us and decisions that are in the best interest for everyone. 22:50 – Fresh Books! 23:53 – Chuck: So what do you guys think about: what’s coming? Do you feel like things are going to move away from frontend frameworks? Will there be a large adoption curve? 24:30 – Panel: If we are talking about the space of Ruby on Rails then you want it to be maintainable. You don’t want to steer too far away from its core. 28:11 – Panel: Good I like that. There are great tools that we are getting through Google, Facebook and they have great tools for these apps. They are looking for the 1-person startup very much like Basecamp. It’s all possible that we are holding onto these technologies that are great but does it fit ME. Do I want to maintain things? Do I want to make this more complicated? Especially if I really don’t fit into what I’m trying to do. 29:13 – Panel: Yeah some people in the DOT NET world they were really struggling with some modern approaches. 30:42 – Panel: One of our listeners texted me b/c we are recording LIVE. Panelist reads off from a listener’s text message that uses a quote. 31:16 – Panel: When I started Ruby it was a PHP project and I couldn’t get there. I didn’t have enough bandwidth. It was easy for me to build the RAILS way. 32:02 – Chuck: I was introduced to PHP in college, early 2000’s. I really enjoyed it and I was fairly productive and then I found Rails. 32:27 – Panelist talks about PHP, flash frontend, and more. 34:42 – Chuck: Could and will something come along that will affect the way we write code? 34:56 – Panel: Yes, b/c I think technology is sustainable for a certain amount of time before things start to change again. Look at the iPhones and the Android phones. 38:26 – Panel: I think it takes time to do something well. Panelist talks about Rails, Ruby, data, and more! 40:25 – Panel: It’s interesting b/c the tradeoff used to be much bigger. The bandwidth is better, the screens are better, the way we do things are better. There is much of a tradeoff. That’s how people are interacting with our business and our products. I tend to write these flowery articles that I don’t publish. There was something in the air and in the mid-2000’s we were launching Netflix, and all of these things were happening at that time. A lot is happening now but it’s different now. Where are we going? Where would I be happy to work? If we can get on the phone and inside of our data and it just adds more value. It’s not an easy answer to “Where are we going?” but it’s good to talk about it b/c people might be afraid to ask and to answer. 43:13 – Chuck: Anything else or picks? 43:19 – Panel: We are saying today: we aren’t trying to break-out of this bubble, but we are saying: let’s get closer to the user and there is so much opportunity in THIS space!! 44:10 – Panel: The technology is tapped-out right now. 44:50 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show Angular DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Jest.io Mocha.js Book: Desert Cabal Habits for Hackers Home Depot: DeWalt Harbor Freight 11ty Masterminds Webinar Sponsors: Sentry CacheFly Fresh Books Picks: Dave Dewalt Drill Dust Collector David Habits for Hackers Desert Cabal (for funnies) Charles Mastermind Hunter 11ty.io
Panel: Eric Berry Dave Kimura David Richards Charles Max Wood In this episode of Ruby Rogues, the panelists talk amongst themselves on today’s topic, which is “speculation on frameworks.” They consider where the tech community currently is right now, and where it’s heading towards the future. They bring-up topics such as: Rails, Ruby, Angular, Agile, and much more. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:47 – Chuck: Check out the DevRev 2:08 – Panel: A topic about “speculation” would be great today. What are we seeing in the community: what we like/don’t like, and what would you want to change? He talks about action text, JavaScript framework, and more. 3:41 – Chuck: Service-side rendering is what we talked about in the past. Divya does this with service–side rendering. For content sites that approach makes a lot of sense. I have playing around with this for the past week or so. I was taking it to rendering it to text. 4:39 – Panel: Yeah, that’s the way to go. 5:29 – Chuck: You are talking about a fully side UI. 5:45 – Panel: I thought it was just my age so I am glad we are talking about this. The hip kids want to make these beautiful frontend sites. I want to keep it simple and then justify more later. I guess I would never be as hip but as long as my stuff gets out there – that’s all that matters to me. 6:28 – Panel: Yeah don’t get me wrong...nobody will want to develop your product if it was built 30 years ago. If it is a startup you want it to look good with a nice UI. Nobody will purchase if it looks outdated. How much maintenance do I want to invest into this? Why add another component into that if you cannot maintain it. 7:56 – Chuck: Yeah I have come into this issue while building the Podcast Service that I am creating. 8:25 – Panel: These are good frameworks and they feel great. I don’t realize the complexity that I am taking on sometimes. I have a lot of complexity on my hands: did I need it? 9:02 – Chuck: Sometimes my problem is that I am trying to pull it in after-the-fact. Like the forms to animate or this and that have to slide in. I want a natural feel to the UX. I looked at React and then I didn’t go that way. I have been podcasting about Angular for 4 years, but it was a no-go for my project. For my solution – it makes sense to just get it going and get it rolling. 10:45 – Panel: When we do use Action Vue we are prone to get lazy. What I mean by that is making database calls. 12:01 – Panel: You can think: Inside-Out! That creates an identity around the project. If I can think of that before going in, then everyone knows what we are doing and what their role is. It’s really obvious. Simple things grow into bigger things. I am a fan of service-side objects. It’s a daily work process. That feels good to me and it’s programmatic for me. 13:24 – Chuck: You aren’t saying: I don’t want or I don’t need ... what you are saying is: I will get this tool when I need it. 13:45 – Panel: You can say: “Hey this is what we are going to do and WHY we are going to do it.” It’s nice to come back to old projects and to see that it’s still solid. It’s nice to see that and people own that software and didn’t have to keep updating. 15:06 – Chuck: It reminds me of the Agile development stuff. The approach between Angular and React and Vue are fairly different. They are reasonably different. There will be tradeoffs between which one to use. When you are making that decision then you can make the appropriate decision on that. 16:10 – Panel: I remember in the prior years when the Rails community grew their own people and you were a RAILS person; now it’s you’re a WEB person. 17:43 – Panel: In a lot of cases it’s good to see what’s out there and to see what’s new; especially early on if they end up being ahead of their time. Then you are an early pioneer in that area. There’s nothing wrong with that, but when you are introducing new things into your core you are running into unforeseeable risks. I am not an early adapter of React, but I know enough of the pros and cons of the framework. 19:48 – Panel: I like that. Maybe I “should” adapt that framework and maybe I am not the right person to do so. 21:06 – Chuck: Dave brought us to a new topic and that’s: being an early adapter. Some people want a name, some people want to invent stuff and so many more reasons “why.” I don’t want to “poo poo” the idea but you need to know WHY. 21:48 – Panel: The cost of developers is A LOT. I just think if I was building a house and I had that expense then I better get a really nice house out of it. I want to do a good job and that’s important. On the business – side they have to rely on us and decisions that are in the best interest for everyone. 22:50 – Fresh Books! 23:53 – Chuck: So what do you guys think about: what’s coming? Do you feel like things are going to move away from frontend frameworks? Will there be a large adoption curve? 24:30 – Panel: If we are talking about the space of Ruby on Rails then you want it to be maintainable. You don’t want to steer too far away from its core. 28:11 – Panel: Good I like that. There are great tools that we are getting through Google, Facebook and they have great tools for these apps. They are looking for the 1-person startup very much like Basecamp. It’s all possible that we are holding onto these technologies that are great but does it fit ME. Do I want to maintain things? Do I want to make this more complicated? Especially if I really don’t fit into what I’m trying to do. 29:13 – Panel: Yeah some people in the DOT NET world they were really struggling with some modern approaches. 30:42 – Panel: One of our listeners texted me b/c we are recording LIVE. Panelist reads off from a listener’s text message that uses a quote. 31:16 – Panel: When I started Ruby it was a PHP project and I couldn’t get there. I didn’t have enough bandwidth. It was easy for me to build the RAILS way. 32:02 – Chuck: I was introduced to PHP in college, early 2000’s. I really enjoyed it and I was fairly productive and then I found Rails. 32:27 – Panelist talks about PHP, flash frontend, and more. 34:42 – Chuck: Could and will something come along that will affect the way we write code? 34:56 – Panel: Yes, b/c I think technology is sustainable for a certain amount of time before things start to change again. Look at the iPhones and the Android phones. 38:26 – Panel: I think it takes time to do something well. Panelist talks about Rails, Ruby, data, and more! 40:25 – Panel: It’s interesting b/c the tradeoff used to be much bigger. The bandwidth is better, the screens are better, the way we do things are better. There is much of a tradeoff. That’s how people are interacting with our business and our products. I tend to write these flowery articles that I don’t publish. There was something in the air and in the mid-2000’s we were launching Netflix, and all of these things were happening at that time. A lot is happening now but it’s different now. Where are we going? Where would I be happy to work? If we can get on the phone and inside of our data and it just adds more value. It’s not an easy answer to “Where are we going?” but it’s good to talk about it b/c people might be afraid to ask and to answer. 43:13 – Chuck: Anything else or picks? 43:19 – Panel: We are saying today: we aren’t trying to break-out of this bubble, but we are saying: let’s get closer to the user and there is so much opportunity in THIS space!! 44:10 – Panel: The technology is tapped-out right now. 44:50 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show Angular DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Jest.io Mocha.js Book: Desert Cabal Habits for Hackers Home Depot: DeWalt Harbor Freight 11ty Masterminds Webinar Sponsors: Sentry CacheFly Fresh Books Picks: Dave Dewalt Drill Dust Collector David Habits for Hackers Desert Cabal (for funnies) Charles Mastermind Hunter 11ty.io
Panel: Mark Ericksen Josh Adams Special Guest: Edgar Pino In this episode of Elixir Mix, the panel talks with Edgar Pino who talks with the panel about the latest version of Ecto! They discuss Ecto’s new features and how easy of a transition it was to go from the previous to the newest version. Edgar Pino is a software engineer who currently resides in Utah! Check out today’s episode! Show Topics: 0:00 – Advertisement: Get A Coder Job! 1:04 – Mark: Hello! Please give us your background? 1:16 – Guest: I have been in Elixir for the past year or two and I have been living in Utah. 1:48 – Mark: I love the nature and state parks. Winter is coming, so I hope you are ready! 1:58 – Guest: Winter...hopefully it will be great! 2:20 – Panelists and guest go back-and-forth. 2:30 – Mark: Let’s talk about your blog posts about Ecto. What are your new announcements? 2:52 – Guest: Our new version was released a few weeks ago. 3:32 – Panel. 3:38 – The guest talks about the old and new versions of Ecto. 4:03 – Panel: What is new and how is this going to affect me (the new version)? 4:11 – Panel: The transition was pretty painless for me. The only change was the breaking-up of the adapter ad also the timestamp bit. That was it. 4:34 – Panel: Yeah that micro-timestamp surprised me for a second, but it wasn’t that bad after all. 4:52 – Guest: Yeah it was painless for me, too. 5:19 – Panel: Edgar can you talk about the change and what they did with the timestamps? 5:32 – The guest answers the question. 5:54 – Panel: Elm opted to use the micro-millisecond, too. Time zones aren’t a thing. 6:24 – Mark. 7:08 – Panel: My tests are the only reason why I care about the millisecond. 7:21 – Mark: With the upgrade don’t do what I did. Mark talks about how he updated and the issues he had. 8:47 – Guest: Pattern matching? 8:53 – Mark: Yep that sort of stuff. I didn’t need to do it and it was a learning experience. Edgar, please give us an introduction to the blog posts? Why did you want to document it? 9:18 – Guest: I always used Ecto with Phoenix but started learning Ecto by itself. I jotted down notes that I thought was interesting. That’s how it started. 10:17 – Mark: See links in the show notes. Using a gen to use the repo – this is one thing that I didn’t know was an option. 10:46 – Guest. 11:01 – Mark asks a question. 11:10 – Guest: Not really PHP applications but listening to web messages and hot topics but you are doing the database and serving data... 11:40 – Guest talks about Ecto and the different versions and features. 12:09 – Mark chimes-in. 12:23 – Panel: Yep – it’s under the hood and it’s for business logic and doesn’t have a web piece. Stop writing tings for the web – it’s a fad. 12:50 – Mark: It’s an umbrella and saw this through the Phoenix generators. 13:54 – Guest talks about web applications. 14:06 – Mark: Let’s talk about schema and databases? 14:23 – Panelist chimes-in. 14:51 – Panelists and guest talk about schemas, apps, and more. Check it out here. 16:13 – Guest: You will get the data and pass it in as a structure and... 16:23 – Mark: Here is a map of what I’d like you to do on my behalf. It goes to a chain set and I will turn it into a string and this is why it’s failed. 17:25 – Panel. 17:31 – Mark: It’s not hard and it’s pretty easy. Let’s talk about blog posts. 18:10 – Panel. 18:22 – Mark: I use Absinthe in the library in Elixir to support GraphQL. 18:50 – Panel. 19:06 – Guest: The total number of results and only once did I need a more complicated thing. 19:34 – Mark: I haven’t had a need for those. 20:01 – Panelists and guests talk about the hypothetical situations where and how they would use certain features for said situations. 20:23 – Guest: You don’t have to understand right out-of-the-box. 20:40 – Panel: Have you used stored functions as meta-columns in an Ecto schema? 20:48 – Panelist explains. 21:24 – Guest: I have used them in the past and now I don’t. For me it was hard to debug – maybe it’s just me. 21:43 – Panel: I was introduced to them through a colleague of mine. 21:53 – Mark chimes-in and talks about him being a DOT NET developer. 22:18 – Panelist chime-in, too! 22:50 – Mark. 23:16 – Panel: It was an awful time and not a good idea. 70 pages! Debugging it was hard. 23:35 – Mark: That experience was apart of that burn that I had before. I wanted to stay far away from it as far as I could. 24:00 – Panel: When I was doing it in DOT NET we didn’t have migrations. 24:12 – Panelist continues. 24:32 – Guest: I wonder if... 24:37 – Panel: It’s just a sequel – it’s not just an Ecto specific feature. 24:48 – Guest. 24:53 – FreshBooks! 26:01 – Mark: Edgar you were interested also in HOW Ecto was built. What experience did you have? 26:21 – Guest answers the question. 28:22 – Panel: No you typed REPO there. 28:30 – Guest: Whenever you save or make an update it’s a method. Unlike Ecto you have to all it something else. 28:47 – Panel: Hey let me get those article posted and someone did it in Loop and that is a lot of queries. 29:03 – Guest: Yeah that’s a good point. 29:45 – Mark: Something I’ve noticed is that they talk about performance improvements and better memory usage. Go read about it- it’s great. They talk about HOW Ecto is working and what is behind the scenes. 31:15 – Mark: Another feature that I have seen is UPSERTS. 31:50 – Guest talks about UPSERTS, too. 32:34 – Mark: Say I have a system that has 3 servers and it’s rolling updates (it will take down one and put up the new code, etc. and it will cycle) one thing they added was a lock on the migration table. I don’t know if you’ve had this – once it hits production data it is slow. Mark continues. 33:20 – Panel: I think it was just luck of the draw. 33:30 – Mark continues. 33:57 – The guest talks about his experience with the above-mentioned scenario. 34:20 – Mark: I like that you both have had goo experiences with your upgrades. I want people to be excited and know that there are great features out there. 34:49 – Guest: Yes, I have found that the blog post is helpful. It’s good to get adapted to the new changes. 35:17 – Panel: Yeah I normally don’t have teasers up to the actual upgrade. 35:28 – Panel: The community is nice and people made a good effort to communicate and help people. They did a GOOD job of helping people to feel comfortable within the transition from one version to the next! 41:37 – Ad: Lootcrate.com END – CacheFly! Links: Ruby Elixir Elixir: GenServer GenServers Elm JavaScript Visual Studio Code React Edgar Pino A sneak peek at Ecto 3 Ecto Active Record Pattern Repository Sponsors: Loot Crate Get a Coder Job! Fresh Books CacheFly Picks: Mark Plex Josh This Erlang Life Guest Ecto Documentation! Edgar Pino – My blog!
Panel: Eric Berry Dave Kimura David Richards Charles Max Wood In this episode of Ruby Rogues, the panelists talk amongst themselves on today’s topic, which is “speculation on frameworks.” They consider where the tech community currently is right now, and where it’s heading towards the future. They bring-up topics such as: Rails, Ruby, Angular, Agile, and much more. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:47 – Chuck: Check out the DevRev 2:08 – Panel: A topic about “speculation” would be great today. What are we seeing in the community: what we like/don’t like, and what would you want to change? He talks about action text, JavaScript framework, and more. 3:41 – Chuck: Service-side rendering is what we talked about in the past. Divya does this with service–side rendering. For content sites that approach makes a lot of sense. I have playing around with this for the past week or so. I was taking it to rendering it to text. 4:39 – Panel: Yeah, that’s the way to go. 5:29 – Chuck: You are talking about a fully side UI. 5:45 – Panel: I thought it was just my age so I am glad we are talking about this. The hip kids want to make these beautiful frontend sites. I want to keep it simple and then justify more later. I guess I would never be as hip but as long as my stuff gets out there – that’s all that matters to me. 6:28 – Panel: Yeah don’t get me wrong...nobody will want to develop your product if it was built 30 years ago. If it is a startup you want it to look good with a nice UI. Nobody will purchase if it looks outdated. How much maintenance do I want to invest into this? Why add another component into that if you cannot maintain it. 7:56 – Chuck: Yeah I have come into this issue while building the Podcast Service that I am creating. 8:25 – Panel: These are good frameworks and they feel great. I don’t realize the complexity that I am taking on sometimes. I have a lot of complexity on my hands: did I need it? 9:02 – Chuck: Sometimes my problem is that I am trying to pull it in after-the-fact. Like the forms to animate or this and that have to slide in. I want a natural feel to the UX. I looked at React and then I didn’t go that way. I have been podcasting about Angular for 4 years, but it was a no-go for my project. For my solution – it makes sense to just get it going and get it rolling. 10:45 – Panel: When we do use Action Vue we are prone to get lazy. What I mean by that is making database calls. 12:01 – Panel: You can think: Inside-Out! That creates an identity around the project. If I can think of that before going in, then everyone knows what we are doing and what their role is. It’s really obvious. Simple things grow into bigger things. I am a fan of service-side objects. It’s a daily work process. That feels good to me and it’s programmatic for me. 13:24 – Chuck: You aren’t saying: I don’t want or I don’t need ... what you are saying is: I will get this tool when I need it. 13:45 – Panel: You can say: “Hey this is what we are going to do and WHY we are going to do it.” It’s nice to come back to old projects and to see that it’s still solid. It’s nice to see that and people own that software and didn’t have to keep updating. 15:06 – Chuck: It reminds me of the Agile development stuff. The approach between Angular and React and Vue are fairly different. They are reasonably different. There will be tradeoffs between which one to use. When you are making that decision then you can make the appropriate decision on that. 16:10 – Panel: I remember in the prior years when the Rails community grew their own people and you were a RAILS person; now it’s you’re a WEB person. 17:43 – Panel: In a lot of cases it’s good to see what’s out there and to see what’s new; especially early on if they end up being ahead of their time. Then you are an early pioneer in that area. There’s nothing wrong with that, but when you are introducing new things into your core you are running into unforeseeable risks. I am not an early adapter of React, but I know enough of the pros and cons of the framework. 19:48 – Panel: I like that. Maybe I “should” adapt that framework and maybe I am not the right person to do so. 21:06 – Chuck: Dave brought us to a new topic and that’s: being an early adapter. Some people want a name, some people want to invent stuff and so many more reasons “why.” I don’t want to “poo poo” the idea but you need to know WHY. 21:48 – Panel: The cost of developers is A LOT. I just think if I was building a house and I had that expense then I better get a really nice house out of it. I want to do a good job and that’s important. On the business – side they have to rely on us and decisions that are in the best interest for everyone. 22:50 – Fresh Books! 23:53 – Chuck: So what do you guys think about: what’s coming? Do you feel like things are going to move away from frontend frameworks? Will there be a large adoption curve? 24:30 – Panel: If we are talking about the space of Ruby on Rails then you want it to be maintainable. You don’t want to steer too far away from its core. 28:11 – Panel: Good I like that. There are great tools that we are getting through Google, Facebook and they have great tools for these apps. They are looking for the 1-person startup very much like Basecamp. It’s all possible that we are holding onto these technologies that are great but does it fit ME. Do I want to maintain things? Do I want to make this more complicated? Especially if I really don’t fit into what I’m trying to do. 29:13 – Panel: Yeah some people in the DOT NET world they were really struggling with some modern approaches. 30:42 – Panel: One of our listeners texted me b/c we are recording LIVE. Panelist reads off from a listener’s text message that uses a quote. 31:16 – Panel: When I started Ruby it was a PHP project and I couldn’t get there. I didn’t have enough bandwidth. It was easy for me to build the RAILS way. 32:02 – Chuck: I was introduced to PHP in college, early 2000’s. I really enjoyed it and I was fairly productive and then I found Rails. 32:27 – Panelist talks about PHP, flash frontend, and more. 34:42 – Chuck: Could and will something come along that will affect the way we write code? 34:56 – Panel: Yes, b/c I think technology is sustainable for a certain amount of time before things start to change again. Look at the iPhones and the Android phones. 38:26 – Panel: I think it takes time to do something well. Panelist talks about Rails, Ruby, data, and more! 40:25 – Panel: It’s interesting b/c the tradeoff used to be much bigger. The bandwidth is better, the screens are better, the way we do things are better. There is much of a tradeoff. That’s how people are interacting with our business and our products. I tend to write these flowery articles that I don’t publish. There was something in the air and in the mid-2000’s we were launching Netflix, and all of these things were happening at that time. A lot is happening now but it’s different now. Where are we going? Where would I be happy to work? If we can get on the phone and inside of our data and it just adds more value. It’s not an easy answer to “Where are we going?” but it’s good to talk about it b/c people might be afraid to ask and to answer. 43:13 – Chuck: Anything else or picks? 43:19 – Panel: We are saying today: we aren’t trying to break-out of this bubble, but we are saying: let’s get closer to the user and there is so much opportunity in THIS space!! 44:10 – Panel: The technology is tapped-out right now. 44:50 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show Angular DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Jest.io Mocha.js Book: Desert Cabal Habits for Hackers Home Depot: DeWalt Harbor Freight 11ty Masterminds Webinar Sponsors: Sentry CacheFly Fresh Books Picks: Dave Dewalt Drill Dust Collector David Habits for Hackers Desert Cabal (for funnies) Charles Mastermind Hunter 11ty.io
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: Lucas Reis Charles Max Wood Justin Bennett Special Guest: Soumyajit Pathak In this episode, the panelists talk with Soumyajit Pathak (India) who is a full-stack developer and cybersecurity enthusiast. The panel and the guest talk about design patterns and designing simpler code for clarity and less confusion. Check out today’s episode! Show Topics: 0:00 – Kendo UI 0:31 – Chuck: Our panelists are and our guest is Soumyajit! Introduce yourself please! Are you doing React on the side? 1:02 – Guest: I am a master’s student and I am doing freelancing. 1:42 – Panel. 1:49 – Guest. 2:10 – Chuck: I am feeling very up-to-date. Woo! Universities are teaching this and that and they are focused on theory. The flipside is that they are going to write real code for real systems. 3:10 – Panel: I like your well-written blog posts. You talk about design patterns. 3:50 – Guest: The design patterns at the university had to do with real JavaScript applications. 4:09 – Chuck: I am curious you are talking about the design patterns – how can people from React find/use it? 4:45 – Panel: It depends on your definition of design patterns. 5:35 – Lucas: Maybe you are using one or two here and reading through the design patterns is like going through your toolbox. You only need a screwdriver but you bought the whole toolbox. Get familiar with it and from time to time solve problems and thing: what tool can help me here? It’s clear to me with this toolbox analogy. I understand now – that tool I saw 2 months ago could help me. 7:00 – Guest: I have an interesting story with this about design patterns. Let me share! 7:36 – Justin: It was a similar thing but I wasn’t in JavaScript at the time. I’ve used a lot of C++ code. Design patterns became very useful. I saw it the same way Lucas! 9:23 – Justin continues: How and why to use a certain tool. That’s important. 10:28 – Chuck: Okay this is the default pattern and that’s where we can go for the fallback. Here is the fallback if this doesn’t work here or there. 10:49 – Lucas: This is important to remember. It’s not how to use the tool but it’s why am I using this tool here or there? 11:57 – Justin: It’s so much information in general. People get information overload and they have to just start! One of the challenges we do is that we over-engineer things. Do what you need to know. Look it up but play with it. 12:40 – Lucas: It’s interesting by another blog post that you wrote Soumyajit – and you are using a render prop. You showed a problem and showed the solution. 13:30 – Guest: Yeah I’ve written a lot of blog posts about this topic. 13:48 – Panel: Often times – it’s hard for people just to dive-in. People need to see you solving a problem and it really helps with the learning process. 15:03 – Chuck: What patterns do you find most useful? 15:11 – Panel: Functional components have changed my world! 16:23 – Guest: Around these functional components... 17:17 – Panel: I will go with the patterns that are not useful. Don’t make your code pattern-oriented. This is my favorite pattern now and going back to basics. 18:53 – Panelists go back-and-forth. 19:01 – Lucas. 19:41 – Chuck: You talk about over-engineering things and that’s what I found myself doing sometimes with my new project. When I figure out how to make it simpler I get excited and it’s easy to follow. 20:15 – Panel: We celebrate the person who deleted the most lines of code. 20:28 – Panel: I am going to steal that idea. 21:04 – Guest: I have an interesting story of over-engineering something – let me share! 21:53 – FreshBooks! 22:59 – Panel: Building too much is b/c I don’t have a clear understanding of what I am doing. I get excited about problems. What’s the more simple way / most naïve way possible! 24:36 – Lucas: If you are going to change something you will be changing it in several different places. 25:50 – Chuck: When I heard the concept, all the codes that change together should be together. 26:08 – Lucas comments. 26:53 – Panel: Keeping things contained in one place. We have our presentational component and higher-level component, so you can see it all. 28:28 – Lucas: Different people working on different technologies. 29:15 – Panel: Can I break this down to smaller parts, which makes sense to me? 29:48 – Guest: Looking for keywords will cause a distraction. Finding a balance is good. 30:04 – Chuck: If you have a large rile there could be a smaller component that is there own concern. That feels like the real answer to me. It has a lot less than the length of the file versus... Chuck: If I cannot follow it then I need to keep the concept simple. 30:51 – Lucas: The quantity of lines and the line count – I think it’s better how many indentations you have. 32:43 – Guest. 32:48 – Lucas: Yes, so in the horizontal scrolling you have to keep things in your mind. 33:41 – Panel: There are so many different metrics that you can use and the different line count or different characters. There are more scientific terms that we could plugin here. If you have a lot of these abstract relations that can...write it 34:23 – Chuck: So true. 34:52 – Chuck: I want to move onto a different problem so it’s an attention thing for me too. 35:06 – Panel: We have to get okay with not always writing the best code in that it just needs to do what it needs to do. 35:30 – Chuck. 35:57 – Panel: We write it once – then it falls apart and then we write it again and learn from the process. Learning is the key here – you see where it works and where it doesn’t work well. 36:31 – Panel. 36:47 – Chuck mentions service-side rendering. Chuck: Should we schedule another episode? 37:11 – Panel: I think it’s own episode b/c it’s a complex problem overall. 39:33 – Lucas: Try to find memory leaks in the file components and server-side rendering. Where we have lost a lot of sleep and a higher level of complication. Sometimes it’s necessary. 41:42 – Chuck: Yeah let’s do another episode on this topic. Sounds like there is a lot to dive into this topic. Soumyajit, how do people find you? 42:10 – Guest: Twitter and GitHub! 42:28 – Picks! 42:30 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job React Patterns on GitHub Calibre Book: Engineering a Safer World Designers’ Secret Source Monster Hunter Guest’s GitHub Guest’s Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Justin https://reactpatterns.com/ Calibre App Lucas Engineering a Safer World Soumyajit Blog Muzli - Chrome Extension Charles Monster Hunters International Series Metabase Stripe Work for DevChat TV
Panel: Eric Berry Charles Max Wood Nate Hopkins Special Guest: Paul Smith and Andrew Mason In this episode of Ruby Rogues, the panelists talk with Paul Smith and Andrew Mason! They discuss the platforms Lucky and Crystal. Other topics include: Ruby, Phoenix, Laravel Mix, Thoughtbot, Webpack, compilers, and much more! Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:02 – Chuck: Welcome!! Eric Berry, Nate Hopkins, and myself are the panel - and our special guests are Paul Smith and Andrew Mason. Introduce yourself! 1:41 – Andrew / Guest: I have messed with every type of language, so there’s that! 1:55 – Paul / Guest: I have been here at my current company for 5 years and it’s a consultancy firm. I have been working on Crystal. 2:14 – Chuck: We are lucky to have you! Give people the elevator pitch for Lucky and Crystal? 2:33 – Guest: Let’s talk about Crystal and looks very similar to Ruby! It’s faster and it’s a compound language. It catches a fair amount of things at compile time. The other special features are... 4:17 – Guest mentions compilers. 4:23 – Chuck: Yeah we see this in the typescript. Is it language service – is that what it’s called? Pile and compile and all of this checking are a nice stage for it to run-through. Although the flipside is coding and to not worry about that – that’s nice! 4:56 – Guest: It has changed my approach for sure. 5:43 – Panel: How much slower are you? 5:54 – Guest: I am a lot faster in Crystal than I am in Ruby. 6:51 – Panel: Yeah you have to figure out where you want to save the time. 7:00 – Guest: Someone wrote a blog post and it said...the Rails service is like bolting a shelf on a wall and hoping to hit a stud and it’s not solid. But using Lucky it’s sold although it took a little longer. I think it can be true. You can do bad things with compilers, though. It depends on how you use it. 7:43 – Panelist asks a question. 7:53 – Guest: Every Friday is an investment day. Lucky is my “whatever I want thing.” I am technically getting paid to work on it. 8:33 – Panel: have you had to battle with the framework? 8:51 – Guest: Yes, even though Crystal looks like Ruby (at a high level) if you want to do it well you have to approach it in the Crystal-way. When I came to Crystal I came to it like Rails. The problem with that is I wanted to have type-saved parameters – you can’t do that in Crystal b/c...it doesn’t know when to have a parameter with... 10:48 – Panel: I have heard you talk about Crystal before on another podcast. You talked about templating and I am curious to hear about that. I have used Slim and others and now stick to ERB. 11:25 – Guest: Yes definitely. Let’s back up and talk about WHAT Lucky does! The guest talks about Rails, escaping, and more! 14:37 – Panel: So I imagine Rails partials are slow and expensive to render. I would imagine that this approach with Lucky... 15:00 – Guest: Yes exactly. It’s extremely fast! 15:20 – Panel: How is this for designers? 15:30 – Guest: Yes that was a concern of mine. With Lucky I tried to make it close to a regular HTML structure would look like! 16:32 – Panel: I spun up a Lucky app the other day. It looks like you are using... 16:50 – Guest: I have played around with a bunch of stuff. I landed on Laravel Mix. 18:27 – Panel: Yes webpack is a pain to set up and it’s hard to get it to working the way you want it to work. 18:47 – Guest: Yeah if you want React or whatever it will generate the configuration you need. I don’t like it b/c if you want to... 19:28 – Panel. 19:45 – Guest: I don’t want to maintain it. 19:54 – Panel: There is a Crystal community in Utah. I want to know – are you competing with Amber? Explain the difference between Lucky and Amber? 20:20 – Guest: Yes I did look at Amber but they are approaching it differently than us. The guest talks about the differences between Amber and Lucky. 21:54 – Guest (continues): With Lucky you will have to learn a little bit more but you get more of a pack! 23:23 – Panel: It sounds like Lucky is inspired by Elm – right? 23:32 – Guest: Yeah, I think so. The guest dives into this topic of Elm and Lucky! 24:35 – Panel: How much does the types feel like it’s getting in your way? How explicit is it? When I came to Ruby it was a breath of fresh air. I am a bit reluctant to go back to those days. 25:25 – Guest: I think Lucky does a happy medium. It doesn’t infer instant variables. I like the... 26:28 – Panel: I learned Java very early on in my computer science career. 27:00 – Guest. 27:10 – Panel: “Crystal...it’s not Java!” That should be your slogan! 27:20 – Fresh Books! 28:25 – Panel: A lot of people are moving to Elixir community. Do you see people moving from Ruby to Lucky and Crystal? How does Lucky compare to Phoenix? 28:55 – Guest: Good question! 29:10 – The guest talks about bamboo – see links below!! 29: 29 – Guest: Sure Ruby is fast but sometimes you spend more time on it then you would want to. 31:08 – Guest: Blessing and curse that Crystal looks so much like Ruby. That’s what I thought at first: why would I want to learn this if it’s so similar to Ruby. BUT there are so many benefits to Crystal vs. Ruby. 31:48 – Guest talks about Lucky catching the bugs. 32:00 – Panel: I wonder if that happened with Groovy and Rails? 32:21 – They go back-and-forth. 32:28 – Panel: Thoughtbot has always been on the forefront of Ruby. Can you talk about Thoughbot please? (See links below for Thoughtbot!) 33:15 – Guest: Great question. It’s hard to tell b/c there are different offices. I would say Ruby is our main thing. Ruby is the most mature thing that we use in-terms of web development. Guest: Actually – Rails is pretty nice! 34:54 – Panel: We went through the same thing with CodeFund! I wrote it initially in Python and then I wrote it in Elixir and it became so complex. Now we are moving everything back to Ruby and it’s been a fantastic decision. 36:30 – Chuck: You are talking about the sustainability of open source but there are benefits throughout the company right? There are tons of tangible benefits of doing it, especially when it’s your Friday schedule. You can level-up on things that could help you. I know a lot of companies cannot afford it if they are trying to hustle. 37:42 – Guest: It’s totally not charity through Thoughtbot. It’s a huge help for hiring new people. I know they are okay with letting me work on Lucky b/c it’s bringing on new developers and a good marketing tool, and finally recruiting! 39:07 – Chuck: Yeah, I have been talking about developer freedom and that’s what I am addressing through the DevRev show! It’s my new podcast show. We talk with Chris on Elixir Mix. It lends that credibility if they need to save our bacon. 40:02 – Panel: What’s your goal with Lucky? 40:11 – Guest: I would love to get it to the point where Thoughtbot could start a project and default to Lucky! Start a project and not resting every gem and be confident with launching it. 41:36 – Panelist asks a question. 41:45 – Guest: It’s not 1.0 and that means that the API will break with every release. I think that’s good to tweak stuff but that turns companies off, though. 42:40 – Chuck: Another thing that helps with adoption is Twitter used Rails to build their initial version. This blah, blah company uses important stuff and they are using Crystal and whatnot then that’s good! It sounds like you are waiting for social proof. 43:23 – Guest: Is the next Twitter going to even know about Crystal? 43:40 – Chuck: It literally only takes one enthusiast! 43:52 – Guest. 44:11 – Demo of Flickr Search is mentioned here! 45:13 – Panel: Is there something out there that you could POINT someone to? 45:27 – Guest: Not, yet. I built a small site with it! It is opensource and you can look at it. I want to show people a good example of what Lucky can do! 45:57 – Panel: You have very good docs and I am a visual learner. When I learned Rails I learned on my own and not through school. 46:20 – Panelist asks a question. 46:48 – Guest: What a huge advantage Lucky has through the Thoughtbot platform! Now that platform is kind of dried up. In terms of getting people excited it needs that killer app and they can see that it’s fast and killer! I think it takes a lot of time and finding time to do it so that’s tricky. It’s changing a lot when there is so much change. Getting Lucky to a 1.0 state so people can do videos and make apps. The hard part thing is that Lucky has to be 1.0 when Crystal is 1.0. The Lucky community is great b/c it’s encouraging and to respond in a very kind way. When you are starting something that’s new can be scary. We try to help out as much as we can and we are open and kind about it. 49:13 – Panel: “Paul is nice so Lucky is nice!” 49:19 – Guest: Everyone is super kind. It had to be short and simple. We in the dev community are very lucky – usually great pay/benefits and more w/o a college degree. What another field can you do that?! 51:00 – Panel: Great message and you need to push that! 51:10 – Panel: You were on a past podcast and you talked about how you are donating each month! Panel: Opensource maintainers are getting burned out and you want to support that. 51:40 – Guest: I think opensource sustainability what others need to do to make it sustainable. If you have the means to give we can be apart of that, too. It would be nice if companies did that. If it helps Crystal I am happy. 52:17 – Panel: I have a question about Crystal. 52:52 – Guest: Ruby right now you can do C sections right now. 53:01 – Panel. 53:10 – Guest: I don’t think so – it may but I would guess that you could do it but I don’t know how easy it would be. Note: Rust and C are mentioned. 53:37 – Panel comments. 53:46 – Guest: One thing I would say is to check-out the Lucky docs. We are happy to help! 54:10 – Panel: This is a favorite episode of mine! Both of today’s guests have been my favorite! 54:23 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Jest.io Mocha.js Webpacker-Cli Amber Lucky The Lucky Philosophy The Bike Shed Thoughtbot CodeFund Lucky: Ruby on Rails to Lucky on Crystal... “Crystal is not Ruby Part 1” GitHub: Bamboo Ex_Machina Dialyxir Crystal Mastery Samsung T5 Carbon Copy Cloner iMazing Awesome-Lucky Paul Smith GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Nate Samsung SSD Carbon Copy Cloner Application Eric iMazing HEIC Converter Charles Mastodon Andrew Upcase by Thoughtbot Awesome Lucky Paul Tailwind CSS Phoenix Live HTML Chris McCord Elixir Mix Episodes with Chris McCord
Panel: Lucas Reis Charles Max Wood Justin Bennett Special Guest: Soumyajit Pathak In this episode, the panelists talk with Soumyajit Pathak (India) who is a full-stack developer and cybersecurity enthusiast. The panel and the guest talk about design patterns and designing simpler code for clarity and less confusion. Check out today’s episode! Show Topics: 0:00 – Kendo UI 0:31 – Chuck: Our panelists are and our guest is Soumyajit! Introduce yourself please! Are you doing React on the side? 1:02 – Guest: I am a master’s student and I am doing freelancing. 1:42 – Panel. 1:49 – Guest. 2:10 – Chuck: I am feeling very up-to-date. Woo! Universities are teaching this and that and they are focused on theory. The flipside is that they are going to write real code for real systems. 3:10 – Panel: I like your well-written blog posts. You talk about design patterns. 3:50 – Guest: The design patterns at the university had to do with real JavaScript applications. 4:09 – Chuck: I am curious you are talking about the design patterns – how can people from React find/use it? 4:45 – Panel: It depends on your definition of design patterns. 5:35 – Lucas: Maybe you are using one or two here and reading through the design patterns is like going through your toolbox. You only need a screwdriver but you bought the whole toolbox. Get familiar with it and from time to time solve problems and thing: what tool can help me here? It’s clear to me with this toolbox analogy. I understand now – that tool I saw 2 months ago could help me. 7:00 – Guest: I have an interesting story with this about design patterns. Let me share! 7:36 – Justin: It was a similar thing but I wasn’t in JavaScript at the time. I’ve used a lot of C++ code. Design patterns became very useful. I saw it the same way Lucas! 9:23 – Justin continues: How and why to use a certain tool. That’s important. 10:28 – Chuck: Okay this is the default pattern and that’s where we can go for the fallback. Here is the fallback if this doesn’t work here or there. 10:49 – Lucas: This is important to remember. It’s not how to use the tool but it’s why am I using this tool here or there? 11:57 – Justin: It’s so much information in general. People get information overload and they have to just start! One of the challenges we do is that we over-engineer things. Do what you need to know. Look it up but play with it. 12:40 – Lucas: It’s interesting by another blog post that you wrote Soumyajit – and you are using a render prop. You showed a problem and showed the solution. 13:30 – Guest: Yeah I’ve written a lot of blog posts about this topic. 13:48 – Panel: Often times – it’s hard for people just to dive-in. People need to see you solving a problem and it really helps with the learning process. 15:03 – Chuck: What patterns do you find most useful? 15:11 – Panel: Functional components have changed my world! 16:23 – Guest: Around these functional components... 17:17 – Panel: I will go with the patterns that are not useful. Don’t make your code pattern-oriented. This is my favorite pattern now and going back to basics. 18:53 – Panelists go back-and-forth. 19:01 – Lucas. 19:41 – Chuck: You talk about over-engineering things and that’s what I found myself doing sometimes with my new project. When I figure out how to make it simpler I get excited and it’s easy to follow. 20:15 – Panel: We celebrate the person who deleted the most lines of code. 20:28 – Panel: I am going to steal that idea. 21:04 – Guest: I have an interesting story of over-engineering something – let me share! 21:53 – FreshBooks! 22:59 – Panel: Building too much is b/c I don’t have a clear understanding of what I am doing. I get excited about problems. What’s the more simple way / most naïve way possible! 24:36 – Lucas: If you are going to change something you will be changing it in several different places. 25:50 – Chuck: When I heard the concept, all the codes that change together should be together. 26:08 – Lucas comments. 26:53 – Panel: Keeping things contained in one place. We have our presentational component and higher-level component, so you can see it all. 28:28 – Lucas: Different people working on different technologies. 29:15 – Panel: Can I break this down to smaller parts, which makes sense to me? 29:48 – Guest: Looking for keywords will cause a distraction. Finding a balance is good. 30:04 – Chuck: If you have a large rile there could be a smaller component that is there own concern. That feels like the real answer to me. It has a lot less than the length of the file versus... Chuck: If I cannot follow it then I need to keep the concept simple. 30:51 – Lucas: The quantity of lines and the line count – I think it’s better how many indentations you have. 32:43 – Guest. 32:48 – Lucas: Yes, so in the horizontal scrolling you have to keep things in your mind. 33:41 – Panel: There are so many different metrics that you can use and the different line count or different characters. There are more scientific terms that we could plugin here. If you have a lot of these abstract relations that can...write it 34:23 – Chuck: So true. 34:52 – Chuck: I want to move onto a different problem so it’s an attention thing for me too. 35:06 – Panel: We have to get okay with not always writing the best code in that it just needs to do what it needs to do. 35:30 – Chuck. 35:57 – Panel: We write it once – then it falls apart and then we write it again and learn from the process. Learning is the key here – you see where it works and where it doesn’t work well. 36:31 – Panel. 36:47 – Chuck mentions service-side rendering. Chuck: Should we schedule another episode? 37:11 – Panel: I think it’s own episode b/c it’s a complex problem overall. 39:33 – Lucas: Try to find memory leaks in the file components and server-side rendering. Where we have lost a lot of sleep and a higher level of complication. Sometimes it’s necessary. 41:42 – Chuck: Yeah let’s do another episode on this topic. Sounds like there is a lot to dive into this topic. Soumyajit, how do people find you? 42:10 – Guest: Twitter and GitHub! 42:28 – Picks! 42:30 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job React Patterns on GitHub Calibre Book: Engineering a Safer World Designers’ Secret Source Monster Hunter Guest’s GitHub Guest’s Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Justin https://reactpatterns.com/ Calibre App Lucas Engineering a Safer World Soumyajit Blog Muzli - Chrome Extension Charles Monster Hunters International Series Metabase Stripe Work for DevChat TV
Panel: Eric Berry Charles Max Wood Nate Hopkins Special Guest: Paul Smith and Andrew Mason In this episode of Ruby Rogues, the panelists talk with Paul Smith and Andrew Mason! They discuss the platforms Lucky and Crystal. Other topics include: Ruby, Phoenix, Laravel Mix, Thoughtbot, Webpack, compilers, and much more! Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:02 – Chuck: Welcome!! Eric Berry, Nate Hopkins, and myself are the panel - and our special guests are Paul Smith and Andrew Mason. Introduce yourself! 1:41 – Andrew / Guest: I have messed with every type of language, so there’s that! 1:55 – Paul / Guest: I have been here at my current company for 5 years and it’s a consultancy firm. I have been working on Crystal. 2:14 – Chuck: We are lucky to have you! Give people the elevator pitch for Lucky and Crystal? 2:33 – Guest: Let’s talk about Crystal and looks very similar to Ruby! It’s faster and it’s a compound language. It catches a fair amount of things at compile time. The other special features are... 4:17 – Guest mentions compilers. 4:23 – Chuck: Yeah we see this in the typescript. Is it language service – is that what it’s called? Pile and compile and all of this checking are a nice stage for it to run-through. Although the flipside is coding and to not worry about that – that’s nice! 4:56 – Guest: It has changed my approach for sure. 5:43 – Panel: How much slower are you? 5:54 – Guest: I am a lot faster in Crystal than I am in Ruby. 6:51 – Panel: Yeah you have to figure out where you want to save the time. 7:00 – Guest: Someone wrote a blog post and it said...the Rails service is like bolting a shelf on a wall and hoping to hit a stud and it’s not solid. But using Lucky it’s sold although it took a little longer. I think it can be true. You can do bad things with compilers, though. It depends on how you use it. 7:43 – Panelist asks a question. 7:53 – Guest: Every Friday is an investment day. Lucky is my “whatever I want thing.” I am technically getting paid to work on it. 8:33 – Panel: have you had to battle with the framework? 8:51 – Guest: Yes, even though Crystal looks like Ruby (at a high level) if you want to do it well you have to approach it in the Crystal-way. When I came to Crystal I came to it like Rails. The problem with that is I wanted to have type-saved parameters – you can’t do that in Crystal b/c...it doesn’t know when to have a parameter with... 10:48 – Panel: I have heard you talk about Crystal before on another podcast. You talked about templating and I am curious to hear about that. I have used Slim and others and now stick to ERB. 11:25 – Guest: Yes definitely. Let’s back up and talk about WHAT Lucky does! The guest talks about Rails, escaping, and more! 14:37 – Panel: So I imagine Rails partials are slow and expensive to render. I would imagine that this approach with Lucky... 15:00 – Guest: Yes exactly. It’s extremely fast! 15:20 – Panel: How is this for designers? 15:30 – Guest: Yes that was a concern of mine. With Lucky I tried to make it close to a regular HTML structure would look like! 16:32 – Panel: I spun up a Lucky app the other day. It looks like you are using... 16:50 – Guest: I have played around with a bunch of stuff. I landed on Laravel Mix. 18:27 – Panel: Yes webpack is a pain to set up and it’s hard to get it to working the way you want it to work. 18:47 – Guest: Yeah if you want React or whatever it will generate the configuration you need. I don’t like it b/c if you want to... 19:28 – Panel. 19:45 – Guest: I don’t want to maintain it. 19:54 – Panel: There is a Crystal community in Utah. I want to know – are you competing with Amber? Explain the difference between Lucky and Amber? 20:20 – Guest: Yes I did look at Amber but they are approaching it differently than us. The guest talks about the differences between Amber and Lucky. 21:54 – Guest (continues): With Lucky you will have to learn a little bit more but you get more of a pack! 23:23 – Panel: It sounds like Lucky is inspired by Elm – right? 23:32 – Guest: Yeah, I think so. The guest dives into this topic of Elm and Lucky! 24:35 – Panel: How much does the types feel like it’s getting in your way? How explicit is it? When I came to Ruby it was a breath of fresh air. I am a bit reluctant to go back to those days. 25:25 – Guest: I think Lucky does a happy medium. It doesn’t infer instant variables. I like the... 26:28 – Panel: I learned Java very early on in my computer science career. 27:00 – Guest. 27:10 – Panel: “Crystal...it’s not Java!” That should be your slogan! 27:20 – Fresh Books! 28:25 – Panel: A lot of people are moving to Elixir community. Do you see people moving from Ruby to Lucky and Crystal? How does Lucky compare to Phoenix? 28:55 – Guest: Good question! 29:10 – The guest talks about bamboo – see links below!! 29: 29 – Guest: Sure Ruby is fast but sometimes you spend more time on it then you would want to. 31:08 – Guest: Blessing and curse that Crystal looks so much like Ruby. That’s what I thought at first: why would I want to learn this if it’s so similar to Ruby. BUT there are so many benefits to Crystal vs. Ruby. 31:48 – Guest talks about Lucky catching the bugs. 32:00 – Panel: I wonder if that happened with Groovy and Rails? 32:21 – They go back-and-forth. 32:28 – Panel: Thoughtbot has always been on the forefront of Ruby. Can you talk about Thoughbot please? (See links below for Thoughtbot!) 33:15 – Guest: Great question. It’s hard to tell b/c there are different offices. I would say Ruby is our main thing. Ruby is the most mature thing that we use in-terms of web development. Guest: Actually – Rails is pretty nice! 34:54 – Panel: We went through the same thing with CodeFund! I wrote it initially in Python and then I wrote it in Elixir and it became so complex. Now we are moving everything back to Ruby and it’s been a fantastic decision. 36:30 – Chuck: You are talking about the sustainability of open source but there are benefits throughout the company right? There are tons of tangible benefits of doing it, especially when it’s your Friday schedule. You can level-up on things that could help you. I know a lot of companies cannot afford it if they are trying to hustle. 37:42 – Guest: It’s totally not charity through Thoughtbot. It’s a huge help for hiring new people. I know they are okay with letting me work on Lucky b/c it’s bringing on new developers and a good marketing tool, and finally recruiting! 39:07 – Chuck: Yeah, I have been talking about developer freedom and that’s what I am addressing through the DevRev show! It’s my new podcast show. We talk with Chris on Elixir Mix. It lends that credibility if they need to save our bacon. 40:02 – Panel: What’s your goal with Lucky? 40:11 – Guest: I would love to get it to the point where Thoughtbot could start a project and default to Lucky! Start a project and not resting every gem and be confident with launching it. 41:36 – Panelist asks a question. 41:45 – Guest: It’s not 1.0 and that means that the API will break with every release. I think that’s good to tweak stuff but that turns companies off, though. 42:40 – Chuck: Another thing that helps with adoption is Twitter used Rails to build their initial version. This blah, blah company uses important stuff and they are using Crystal and whatnot then that’s good! It sounds like you are waiting for social proof. 43:23 – Guest: Is the next Twitter going to even know about Crystal? 43:40 – Chuck: It literally only takes one enthusiast! 43:52 – Guest. 44:11 – Demo of Flickr Search is mentioned here! 45:13 – Panel: Is there something out there that you could POINT someone to? 45:27 – Guest: Not, yet. I built a small site with it! It is opensource and you can look at it. I want to show people a good example of what Lucky can do! 45:57 – Panel: You have very good docs and I am a visual learner. When I learned Rails I learned on my own and not through school. 46:20 – Panelist asks a question. 46:48 – Guest: What a huge advantage Lucky has through the Thoughtbot platform! Now that platform is kind of dried up. In terms of getting people excited it needs that killer app and they can see that it’s fast and killer! I think it takes a lot of time and finding time to do it so that’s tricky. It’s changing a lot when there is so much change. Getting Lucky to a 1.0 state so people can do videos and make apps. The hard part thing is that Lucky has to be 1.0 when Crystal is 1.0. The Lucky community is great b/c it’s encouraging and to respond in a very kind way. When you are starting something that’s new can be scary. We try to help out as much as we can and we are open and kind about it. 49:13 – Panel: “Paul is nice so Lucky is nice!” 49:19 – Guest: Everyone is super kind. It had to be short and simple. We in the dev community are very lucky – usually great pay/benefits and more w/o a college degree. What another field can you do that?! 51:00 – Panel: Great message and you need to push that! 51:10 – Panel: You were on a past podcast and you talked about how you are donating each month! Panel: Opensource maintainers are getting burned out and you want to support that. 51:40 – Guest: I think opensource sustainability what others need to do to make it sustainable. If you have the means to give we can be apart of that, too. It would be nice if companies did that. If it helps Crystal I am happy. 52:17 – Panel: I have a question about Crystal. 52:52 – Guest: Ruby right now you can do C sections right now. 53:01 – Panel. 53:10 – Guest: I don’t think so – it may but I would guess that you could do it but I don’t know how easy it would be. Note: Rust and C are mentioned. 53:37 – Panel comments. 53:46 – Guest: One thing I would say is to check-out the Lucky docs. We are happy to help! 54:10 – Panel: This is a favorite episode of mine! Both of today’s guests have been my favorite! 54:23 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Jest.io Mocha.js Webpacker-Cli Amber Lucky The Lucky Philosophy The Bike Shed Thoughtbot CodeFund Lucky: Ruby on Rails to Lucky on Crystal... “Crystal is not Ruby Part 1” GitHub: Bamboo Ex_Machina Dialyxir Crystal Mastery Samsung T5 Carbon Copy Cloner iMazing Awesome-Lucky Paul Smith GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Nate Samsung SSD Carbon Copy Cloner Application Eric iMazing HEIC Converter Charles Mastodon Andrew Upcase by Thoughtbot Awesome Lucky Paul Tailwind CSS Phoenix Live HTML Chris McCord Elixir Mix Episodes with Chris McCord
Panel: Eric Berry Charles Max Wood Nate Hopkins Special Guest: Paul Smith and Andrew Mason In this episode of Ruby Rogues, the panelists talk with Paul Smith and Andrew Mason! They discuss the platforms Lucky and Crystal. Other topics include: Ruby, Phoenix, Laravel Mix, Thoughtbot, Webpack, compilers, and much more! Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:02 – Chuck: Welcome!! Eric Berry, Nate Hopkins, and myself are the panel - and our special guests are Paul Smith and Andrew Mason. Introduce yourself! 1:41 – Andrew / Guest: I have messed with every type of language, so there’s that! 1:55 – Paul / Guest: I have been here at my current company for 5 years and it’s a consultancy firm. I have been working on Crystal. 2:14 – Chuck: We are lucky to have you! Give people the elevator pitch for Lucky and Crystal? 2:33 – Guest: Let’s talk about Crystal and looks very similar to Ruby! It’s faster and it’s a compound language. It catches a fair amount of things at compile time. The other special features are... 4:17 – Guest mentions compilers. 4:23 – Chuck: Yeah we see this in the typescript. Is it language service – is that what it’s called? Pile and compile and all of this checking are a nice stage for it to run-through. Although the flipside is coding and to not worry about that – that’s nice! 4:56 – Guest: It has changed my approach for sure. 5:43 – Panel: How much slower are you? 5:54 – Guest: I am a lot faster in Crystal than I am in Ruby. 6:51 – Panel: Yeah you have to figure out where you want to save the time. 7:00 – Guest: Someone wrote a blog post and it said...the Rails service is like bolting a shelf on a wall and hoping to hit a stud and it’s not solid. But using Lucky it’s sold although it took a little longer. I think it can be true. You can do bad things with compilers, though. It depends on how you use it. 7:43 – Panelist asks a question. 7:53 – Guest: Every Friday is an investment day. Lucky is my “whatever I want thing.” I am technically getting paid to work on it. 8:33 – Panel: have you had to battle with the framework? 8:51 – Guest: Yes, even though Crystal looks like Ruby (at a high level) if you want to do it well you have to approach it in the Crystal-way. When I came to Crystal I came to it like Rails. The problem with that is I wanted to have type-saved parameters – you can’t do that in Crystal b/c...it doesn’t know when to have a parameter with... 10:48 – Panel: I have heard you talk about Crystal before on another podcast. You talked about templating and I am curious to hear about that. I have used Slim and others and now stick to ERB. 11:25 – Guest: Yes definitely. Let’s back up and talk about WHAT Lucky does! The guest talks about Rails, escaping, and more! 14:37 – Panel: So I imagine Rails partials are slow and expensive to render. I would imagine that this approach with Lucky... 15:00 – Guest: Yes exactly. It’s extremely fast! 15:20 – Panel: How is this for designers? 15:30 – Guest: Yes that was a concern of mine. With Lucky I tried to make it close to a regular HTML structure would look like! 16:32 – Panel: I spun up a Lucky app the other day. It looks like you are using... 16:50 – Guest: I have played around with a bunch of stuff. I landed on Laravel Mix. 18:27 – Panel: Yes webpack is a pain to set up and it’s hard to get it to working the way you want it to work. 18:47 – Guest: Yeah if you want React or whatever it will generate the configuration you need. I don’t like it b/c if you want to... 19:28 – Panel. 19:45 – Guest: I don’t want to maintain it. 19:54 – Panel: There is a Crystal community in Utah. I want to know – are you competing with Amber? Explain the difference between Lucky and Amber? 20:20 – Guest: Yes I did look at Amber but they are approaching it differently than us. The guest talks about the differences between Amber and Lucky. 21:54 – Guest (continues): With Lucky you will have to learn a little bit more but you get more of a pack! 23:23 – Panel: It sounds like Lucky is inspired by Elm – right? 23:32 – Guest: Yeah, I think so. The guest dives into this topic of Elm and Lucky! 24:35 – Panel: How much does the types feel like it’s getting in your way? How explicit is it? When I came to Ruby it was a breath of fresh air. I am a bit reluctant to go back to those days. 25:25 – Guest: I think Lucky does a happy medium. It doesn’t infer instant variables. I like the... 26:28 – Panel: I learned Java very early on in my computer science career. 27:00 – Guest. 27:10 – Panel: “Crystal...it’s not Java!” That should be your slogan! 27:20 – Fresh Books! 28:25 – Panel: A lot of people are moving to Elixir community. Do you see people moving from Ruby to Lucky and Crystal? How does Lucky compare to Phoenix? 28:55 – Guest: Good question! 29:10 – The guest talks about bamboo – see links below!! 29: 29 – Guest: Sure Ruby is fast but sometimes you spend more time on it then you would want to. 31:08 – Guest: Blessing and curse that Crystal looks so much like Ruby. That’s what I thought at first: why would I want to learn this if it’s so similar to Ruby. BUT there are so many benefits to Crystal vs. Ruby. 31:48 – Guest talks about Lucky catching the bugs. 32:00 – Panel: I wonder if that happened with Groovy and Rails? 32:21 – They go back-and-forth. 32:28 – Panel: Thoughtbot has always been on the forefront of Ruby. Can you talk about Thoughbot please? (See links below for Thoughtbot!) 33:15 – Guest: Great question. It’s hard to tell b/c there are different offices. I would say Ruby is our main thing. Ruby is the most mature thing that we use in-terms of web development. Guest: Actually – Rails is pretty nice! 34:54 – Panel: We went through the same thing with CodeFund! I wrote it initially in Python and then I wrote it in Elixir and it became so complex. Now we are moving everything back to Ruby and it’s been a fantastic decision. 36:30 – Chuck: You are talking about the sustainability of open source but there are benefits throughout the company right? There are tons of tangible benefits of doing it, especially when it’s your Friday schedule. You can level-up on things that could help you. I know a lot of companies cannot afford it if they are trying to hustle. 37:42 – Guest: It’s totally not charity through Thoughtbot. It’s a huge help for hiring new people. I know they are okay with letting me work on Lucky b/c it’s bringing on new developers and a good marketing tool, and finally recruiting! 39:07 – Chuck: Yeah, I have been talking about developer freedom and that’s what I am addressing through the DevRev show! It’s my new podcast show. We talk with Chris on Elixir Mix. It lends that credibility if they need to save our bacon. 40:02 – Panel: What’s your goal with Lucky? 40:11 – Guest: I would love to get it to the point where Thoughtbot could start a project and default to Lucky! Start a project and not resting every gem and be confident with launching it. 41:36 – Panelist asks a question. 41:45 – Guest: It’s not 1.0 and that means that the API will break with every release. I think that’s good to tweak stuff but that turns companies off, though. 42:40 – Chuck: Another thing that helps with adoption is Twitter used Rails to build their initial version. This blah, blah company uses important stuff and they are using Crystal and whatnot then that’s good! It sounds like you are waiting for social proof. 43:23 – Guest: Is the next Twitter going to even know about Crystal? 43:40 – Chuck: It literally only takes one enthusiast! 43:52 – Guest. 44:11 – Demo of Flickr Search is mentioned here! 45:13 – Panel: Is there something out there that you could POINT someone to? 45:27 – Guest: Not, yet. I built a small site with it! It is opensource and you can look at it. I want to show people a good example of what Lucky can do! 45:57 – Panel: You have very good docs and I am a visual learner. When I learned Rails I learned on my own and not through school. 46:20 – Panelist asks a question. 46:48 – Guest: What a huge advantage Lucky has through the Thoughtbot platform! Now that platform is kind of dried up. In terms of getting people excited it needs that killer app and they can see that it’s fast and killer! I think it takes a lot of time and finding time to do it so that’s tricky. It’s changing a lot when there is so much change. Getting Lucky to a 1.0 state so people can do videos and make apps. The hard part thing is that Lucky has to be 1.0 when Crystal is 1.0. The Lucky community is great b/c it’s encouraging and to respond in a very kind way. When you are starting something that’s new can be scary. We try to help out as much as we can and we are open and kind about it. 49:13 – Panel: “Paul is nice so Lucky is nice!” 49:19 – Guest: Everyone is super kind. It had to be short and simple. We in the dev community are very lucky – usually great pay/benefits and more w/o a college degree. What another field can you do that?! 51:00 – Panel: Great message and you need to push that! 51:10 – Panel: You were on a past podcast and you talked about how you are donating each month! Panel: Opensource maintainers are getting burned out and you want to support that. 51:40 – Guest: I think opensource sustainability what others need to do to make it sustainable. If you have the means to give we can be apart of that, too. It would be nice if companies did that. If it helps Crystal I am happy. 52:17 – Panel: I have a question about Crystal. 52:52 – Guest: Ruby right now you can do C sections right now. 53:01 – Panel. 53:10 – Guest: I don’t think so – it may but I would guess that you could do it but I don’t know how easy it would be. Note: Rust and C are mentioned. 53:37 – Panel comments. 53:46 – Guest: One thing I would say is to check-out the Lucky docs. We are happy to help! 54:10 – Panel: This is a favorite episode of mine! Both of today’s guests have been my favorite! 54:23 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course The DevRev Podcast Show DevChat TV Ruby Elixir Ruby on Rails Angular Cypress Vue React Jest.io Mocha.js Webpacker-Cli Amber Lucky The Lucky Philosophy The Bike Shed Thoughtbot CodeFund Lucky: Ruby on Rails to Lucky on Crystal... “Crystal is not Ruby Part 1” GitHub: Bamboo Ex_Machina Dialyxir Crystal Mastery Samsung T5 Carbon Copy Cloner iMazing Awesome-Lucky Paul Smith GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Nate Samsung SSD Carbon Copy Cloner Application Eric iMazing HEIC Converter Charles Mastodon Andrew Upcase by Thoughtbot Awesome Lucky Paul Tailwind CSS Phoenix Live HTML Chris McCord Elixir Mix Episodes with Chris McCord
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: 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: Joe Eames John Papa Erik Hatchett Charles Max Wood Special Guest: Miriam Suzanne In this episode, the panel talks with Miriam Suzanne who is an author, performer, musician, designer, and web developer who works with OddBird, Teacup, Gorilla, Grapefruit Lab, and CSS Tricks. She’s the author of Riding SideSaddle and the Post-Obsolete Book, co-author of Jump Start Sass, and creator of the Susy and True Open-Source toolkits. The panel and the guest talk about Fonts! Show Topics: 0:00 – Advertisement – Kendo UI 0:53 – Guest: Hello! 1:01 – Guest: I am a designer and a developer and started a business with my brother. We are two college dropouts. 2:00 – Panel: Is that’s why it’s called OddBird? 2:05 – Guest: Started with Vue and have been talking at conferences. 2:31 – Chuck: Chris invited you and he’s not here today – go figure! 2:47 – Panel: You are big in the CSS world. 2:58 – Guest: That’s where I’ve made my name. I made a grid system that was popular at one moment in time. 3:17 – Panel. 3:27 – Panel: Grid Systems are... 3:36 – Guest talks about her grid system and how it looked. 4:20 – Panel. 4:24 – Panel goes back-and-forth! 5:24 – Chuck. 5:27 – Guest: That’s why grid systems came out in the first place b/c layout was such a nightmare. When I built Susy... 6:02 – How much easier is design today on modern browsers compared to ten years ago when you created Susy? 6:14 – Guest: It can look daunting but there are great guides out there! 7:04 – Panel asks a question. 7:11 – Guest: We recommend a stack to our clients. We had been using backbone Marinette for a while and we wanted to start messing with others. Looking at other frameworks. Looking at design, I like that Vue doesn’t hide it from me and I can see what I need. 8:41 – Panel: I love that about Vue. I knew this guy named, Hue. 8:54 – Guest: I have been friends with Sarah Drasner. 9:07 – Panel: Sarah is great she’s on my team. 9:39 – Guest: I had been diving into JavaScript over the summer. I hadn’t done a lot of JS in the past before the summer. I was learning Vanilla JavaScript. 10:21 – Guest: I don’t like how it mixes it all together (in reference to the JSX). 10:44 – Panel mentions Python and other things. Panelist asks a question. 10:54 – Guest: That would be a question for someone who writes that. 11:30 – Panel: I am going to change topics here for a second. Can you talk about your talk? And what is a design system? 11:48 – Guest answers the question. 13:26 – Panel follows-up with another question. 13:35 – Guest talks about component libraries. 15:30 – Chuck: Do people assume that the component that they have has all the accessibility baked-in b/c everything else does – and turns out it doesn’t? 15:48 – Guest answers. Guest: Hopefully it’s marked into the documentation. 16:25 – Panel. 16:36 – Guest: If you don’t document it – it doesn’t exist. 17:01 – Panel. 17:22 – Guest: “How do we sell clients on this?” We don’t – we let them come back and say, “we had to do less upkeep.” If they are following our patterns then... 17:57 – Panel: We’ve had where guides are handed off and it erodes slowly over time. Then people are doing it 10 different ways and not doing it the way it was designed. 18:31 – Guest: Yes, it should be baked-into the design and it shouldn’t be added to the style guide. 19:02 – Chuck: I really love Sass – and CSS – how do you write SASS or CSS with Vue? 19:12 – Guest answers the question. 19:23 – Chuck: You made my life better! 19:31 – Guest: If you have global files...you can have those imported among other things. 20:11 – Panel: What’s the best way to go about that? 20:24 – The guest talks about CSS, global designs, among other things. 21:15 – The guest mentions inverted triangles CSS! 22:12 – Guest: The deeper we get the narrower we get! 22:49 – Guest mentions scope styles. 23:12 – Panel: That makes total sense! We are using scope everywhere. 23:30 – Guest. 23:36 – Panel: How would you approach this? I start with scope and then I take them out of scope and then usually promote them to import for mix-ins. I wonder where is that border? 24:30 – Advertisement – Get A Coder Job! 25:09 – Guest answers the question. 25:53 – Panel: It sounds easy at first but when you are designing it you say: I know that isn’t right! 26:13 – Guest: I try to go through a design proposal. 26:27 – Guest defines the term: reused. 27:04 – Panel. 27:10 – Guest. 27:30 – Panel: We used to have this problem where we got the question of the following: splitting up the CSS bundles. 28:27 – Guest: That is the nice thing of having CSS in components. 28:49 – Panel asks Miriam a question. 29:02 – Guest: That’s often when someone wants a redesign. 29:54 – Panel: How do you decide on how many fonts to deliver so they don’t take over the size of the browser? 30:09 – Guest: The usual design rule is no more than 2-3 fonts works out well for performance. Try to keep that rule in mind, but you have to consider every unique project. What is more important for THAT project? 31:46 – Panel. 32:21 – Guest gives recommendations with fonts and font files. 33:37 – Chuck: What are you working on now with Vue? 33:45 – Guest answers the question. The guest talks about collaborative writing. 34:10 – Miriam continues. 34:55 – Chuck: What was the trickiest part? 35:00 – Guest answers the question. 36:03 – Guest: It’s called Vue Finder and it’s through open source. 36:39 – Chuck: Any recent talks coming up for you? 36:49 – Guest: I have one tonight and later one in California! 37:02 – Guest: There were several Vue conferences this year that I was sad to have missed. 37:40 – Guest: Are you doing it again? 37:49 – Panel: How many do you attend? 37:57 – Guest: Normally I do 8-10 conferences and then a variety of Meetups. 38:33 – Chuck: Picks! How do people find you? 38:41 – Guest: OddBird.net and Twitter! 38:58 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React JavaScript C# C++ C++ Programming / Memory Management Angular Blazor JavaScript DevChat TV JSX VueConf US 2018 CSS Tricks – By Sarah Drasner Real Talk JavaScript FX Miriam’s Twitter Miriam’s Website OddBird Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe Indoor Rock Climbing Getting back into what you enjoy RoboTech History of Robotech Vue.JS In Action John Papa How To Import a SASS file into every Vue Component in an App Real Talk JS Podcast Erik AWS Amplify Doctor Who Charles Dungeons and Dragons Stuff Extreme Ownership Miriam Pose New DND Game - Test Version
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: 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: Joe Eames John Papa Erik Hatchett Charles Max Wood Special Guest: Miriam Suzanne In this episode, the panel talks with Miriam Suzanne who is an author, performer, musician, designer, and web developer who works with OddBird, Teacup, Gorilla, Grapefruit Lab, and CSS Tricks. She’s the author of Riding SideSaddle and the Post-Obsolete Book, co-author of Jump Start Sass, and creator of the Susy and True Open-Source toolkits. The panel and the guest talk about Fonts! Show Topics: 0:00 – Advertisement – Kendo UI 0:53 – Guest: Hello! 1:01 – Guest: I am a designer and a developer and started a business with my brother. We are two college dropouts. 2:00 – Panel: Is that’s why it’s called OddBird? 2:05 – Guest: Started with Vue and have been talking at conferences. 2:31 – Chuck: Chris invited you and he’s not here today – go figure! 2:47 – Panel: You are big in the CSS world. 2:58 – Guest: That’s where I’ve made my name. I made a grid system that was popular at one moment in time. 3:17 – Panel. 3:27 – Panel: Grid Systems are... 3:36 – Guest talks about her grid system and how it looked. 4:20 – Panel. 4:24 – Panel goes back-and-forth! 5:24 – Chuck. 5:27 – Guest: That’s why grid systems came out in the first place b/c layout was such a nightmare. When I built Susy... 6:02 – How much easier is design today on modern browsers compared to ten years ago when you created Susy? 6:14 – Guest: It can look daunting but there are great guides out there! 7:04 – Panel asks a question. 7:11 – Guest: We recommend a stack to our clients. We had been using backbone Marinette for a while and we wanted to start messing with others. Looking at other frameworks. Looking at design, I like that Vue doesn’t hide it from me and I can see what I need. 8:41 – Panel: I love that about Vue. I knew this guy named, Hue. 8:54 – Guest: I have been friends with Sarah Drasner. 9:07 – Panel: Sarah is great she’s on my team. 9:39 – Guest: I had been diving into JavaScript over the summer. I hadn’t done a lot of JS in the past before the summer. I was learning Vanilla JavaScript. 10:21 – Guest: I don’t like how it mixes it all together (in reference to the JSX). 10:44 – Panel mentions Python and other things. Panelist asks a question. 10:54 – Guest: That would be a question for someone who writes that. 11:30 – Panel: I am going to change topics here for a second. Can you talk about your talk? And what is a design system? 11:48 – Guest answers the question. 13:26 – Panel follows-up with another question. 13:35 – Guest talks about component libraries. 15:30 – Chuck: Do people assume that the component that they have has all the accessibility baked-in b/c everything else does – and turns out it doesn’t? 15:48 – Guest answers. Guest: Hopefully it’s marked into the documentation. 16:25 – Panel. 16:36 – Guest: If you don’t document it – it doesn’t exist. 17:01 – Panel. 17:22 – Guest: “How do we sell clients on this?” We don’t – we let them come back and say, “we had to do less upkeep.” If they are following our patterns then... 17:57 – Panel: We’ve had where guides are handed off and it erodes slowly over time. Then people are doing it 10 different ways and not doing it the way it was designed. 18:31 – Guest: Yes, it should be baked-into the design and it shouldn’t be added to the style guide. 19:02 – Chuck: I really love Sass – and CSS – how do you write SASS or CSS with Vue? 19:12 – Guest answers the question. 19:23 – Chuck: You made my life better! 19:31 – Guest: If you have global files...you can have those imported among other things. 20:11 – Panel: What’s the best way to go about that? 20:24 – The guest talks about CSS, global designs, among other things. 21:15 – The guest mentions inverted triangles CSS! 22:12 – Guest: The deeper we get the narrower we get! 22:49 – Guest mentions scope styles. 23:12 – Panel: That makes total sense! We are using scope everywhere. 23:30 – Guest. 23:36 – Panel: How would you approach this? I start with scope and then I take them out of scope and then usually promote them to import for mix-ins. I wonder where is that border? 24:30 – Advertisement – Get A Coder Job! 25:09 – Guest answers the question. 25:53 – Panel: It sounds easy at first but when you are designing it you say: I know that isn’t right! 26:13 – Guest: I try to go through a design proposal. 26:27 – Guest defines the term: reused. 27:04 – Panel. 27:10 – Guest. 27:30 – Panel: We used to have this problem where we got the question of the following: splitting up the CSS bundles. 28:27 – Guest: That is the nice thing of having CSS in components. 28:49 – Panel asks Miriam a question. 29:02 – Guest: That’s often when someone wants a redesign. 29:54 – Panel: How do you decide on how many fonts to deliver so they don’t take over the size of the browser? 30:09 – Guest: The usual design rule is no more than 2-3 fonts works out well for performance. Try to keep that rule in mind, but you have to consider every unique project. What is more important for THAT project? 31:46 – Panel. 32:21 – Guest gives recommendations with fonts and font files. 33:37 – Chuck: What are you working on now with Vue? 33:45 – Guest answers the question. The guest talks about collaborative writing. 34:10 – Miriam continues. 34:55 – Chuck: What was the trickiest part? 35:00 – Guest answers the question. 36:03 – Guest: It’s called Vue Finder and it’s through open source. 36:39 – Chuck: Any recent talks coming up for you? 36:49 – Guest: I have one tonight and later one in California! 37:02 – Guest: There were several Vue conferences this year that I was sad to have missed. 37:40 – Guest: Are you doing it again? 37:49 – Panel: How many do you attend? 37:57 – Guest: Normally I do 8-10 conferences and then a variety of Meetups. 38:33 – Chuck: Picks! How do people find you? 38:41 – Guest: OddBird.net and Twitter! 38:58 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React JavaScript C# C++ C++ Programming / Memory Management Angular Blazor JavaScript DevChat TV JSX VueConf US 2018 CSS Tricks – By Sarah Drasner Real Talk JavaScript FX Miriam’s Twitter Miriam’s Website OddBird Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe Indoor Rock Climbing Getting back into what you enjoy RoboTech History of Robotech Vue.JS In Action John Papa How To Import a SASS file into every Vue Component in an App Real Talk JS Podcast Erik AWS Amplify Doctor Who Charles Dungeons and Dragons Stuff Extreme Ownership Miriam Pose New DND Game - Test Version
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: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more! Show Topics: 0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous! 1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now? 2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React. The guest talks about Node, React, tools, and more! 4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what? 5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider. The guest gives hypothetical situations that people could face. 6:27 – Aimee. 6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but... 7:22 – Aimee: I totally agree and I could go on and on and on. 7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app. I guess I just need advice in this area, I guess. 8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought. 10:20 – Guest: Don’t mock too much. 10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that. 11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite. 12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff. 13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database. 13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing. 14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition. 14:47 – Guest: Write the code, and then write the tests. The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please? 16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns. 18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection. 19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it. 19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc. 20:09 – Panel. 20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package. 20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested? 21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach. 24:35 – Chuck: When you say integration test what do you mean? 24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time. 26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter? 28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools. 28:39 – Aimee: Yes and no. I think some tools are outdated. 28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the 29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide? 29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser. The guest continues with this topic. 30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them. 31:21 – Aimee: I think they are focusing on mobile more. 31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers. 32:32 – Guest: Selenium is a Swiss knife – it can do everything. 33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about? 33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down? 36:06 – Guest. 38:30 – Chuck: You run tests against production? 38:45 – Guest: Don’t run tests against production...let me clarify! 39:14 – Chuck. 39:21 – Guest: When I am talking about integration testing in the backend... 40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend. I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too. 43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months? 43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this... 44:40 – Guest: Frontend is so visual. 45:12 – Chuck: What are you working on now? 45:16 – Guest: I am working with Applitools and I was impressed with what they were doing. The guest goes into further detail. 46:08 – Guest: Those screenshots are never the same. 48:36 – Panel: It’s...comparing the output to the static site to the... 48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the tests. 50:28 – Guest: I am working mostly (right now) in backend. 50:40 – Chuck: Anything else? Picks! 50:57 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Elixir Node.js Puppeteer Cypress SeleniumHQ Article – Ideas.Ted.Com Book: Never Split the Difference Applitools Guest’s Blog Article about Cypress vs. Selenium Gil’s Twitter Gil’s Medium Gil’s LinkedIn Sponsors: Kendo UI Sentry CacheFly Picks: Aimee How Showing Vulnerability Helps Build a Stronger Team AJ Never Split the Difference Project - TeleBit Charles Monster Hunter International Metabase Gil Cat Zero The Origin of Consciousness in the Breakdown of the Bicameral Mind
Panel: Dave Kimura Eric Berry Charles Max Wood Nate Hopkins Special Guest: Pedro Cavalheiro In this episode of Ruby Rogues, the panelists talk with Pedro Cavalheiro who is from Brazil, but currently resides in Hamburg, Germany where he works at Xing. He is a software engineer, an actor, and has been working with the web since 2010. He has worked mostly with Ruby and PHP languages, and since 2015 has worked full-time with Ruby on Rails. The panelists and Pedro talk about his background and his article. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Panel is Eric, Dave, Nate, myself – and our special guest is Pedro Cavalheiro! Please introduce yourself! Is that Spanish or Portuguese? Chuck: P.S. – The DevRev is my new show and check it! 1:57 – Guest: My name means gentleman! Here at your service. 2:05 – Guest: I am a developer and worked with web technologies for 10 years. I do some DevOps stuff and working with Ruby. I just moved to Hamburg, Germany with the same company. 3:02 – Chuck: How do you make that decision? 3:07 – Guest: There is no magical answer. It depends on your needs and what time you have? At the time when I wrote that article I worked with a small startup company. For us, we used Heroku at the time. 4:09 – Guest: Current company is bigger and 500 developers. We have different ops teams and they have their own infrastructure and tools. They have more money, time, and people. For what they need it needs to be more scalable. It depends on the company and the requirements and your resources. 5:00 – Panel: I need to preface first: I love hosted solutions, but at the same time there is a hidden cost set that people don’t think about. 6:16 – Guest: If you compare your own infrastructure vs. cloud platform they will think that it is cheaper than having a hosted solution. 7:28 – Chuck: Yeah, that’s a discussion that I find that I have with myself and with my own company. It makes a ton of sense to have some system setup and it’s something that I am managing. 8:05 – Panelists talks about AWS and AMI. 9:06 – Guest. 9:21 – Panel: Can you talk about the article you wrote? Why did you write it? Give us some context into the article and where are we now? 9:48 – Guest talks in-detail about his article and where he was in life when he wrote this article! 14:10 – Panel: How much time did you invest into that? 14:16 – Guest: Less than a week; maybe 3-4 days for the whole process. Writing the article took about 2 days. 14:50 – Chuck talks about Docker, Azure, Dokku among other things. Question: Where do you look at all of these different things, and how do evaluate? 16:02 – Guest: I am a huge Heroku fan, and I would suggest people to use it. It’s brilliant. The company I work today it could be expensive to use b/c it’s a heavy load application and it won’t work. As for me (personal projects) I will play around these different tools. 19:02 – Panel: It’s easy to get up and running of Heroku. I think it’s similar to Kubernetes. 20:00 – Guest: I agree with that. The guest shares a story that relates to this topic. 21:45 – Panel: If you are using self-hosted...put some security on your application. Even if it’s just a demo you are protecting your environment. 22:17 – Chuck: Where do you guys come down on making these types of decisions? 22:30 – Panel: I see it as an investment; especially if your development team is small. Eventually, it will scale but in the early days of a project it is a legit choice to use Heroku or Beanstalk. CodeFund is still on Heroku. Right now it’s solving those problems for us. 23:45 – Chuck: Look at everything that we are all running. What do you guys recommend? 24:19 – Panel: I use S3, elastic search, among other things. 25:56 – Guest: I have a similar story. I had some friends who were spending more than $2,000 a month on Heroku. We tried to find how to reduce the amount of money. We removed the application from the Heroku and put it inside a local machine (probably $800 computer) that runs 24/7 and the only expenses were Internet ($50.00 / month) and 1 SSD ($100) and 1 micro-server through Amazon. Now it works and we were spending over 200x the amount that we needed to. In this example it wasn’t a critical system. In this case self-host was far better and cheaper, so it really depends on your case. 28:08 – Panel: Yeah, sometimes the old school and simple solutions are it. 28:26 – Chuck: I have a virtual machine/servers on Digital Ocean, and I cap deploy. I will login in every-now-and-then, but that’s it. 28:50 – Panel adds in his comments to this topic. 29:17 – Guest: Sometimes these old school solutions tend to be slower, but it depends on what you need for that situation. 29:50 – Chuck: David Brady called that his “Time to Twitter.” 30:04 – Fresh Books! 31:10 – Chuck: Can you talk about your discussion about this, please? 31:23 – Guest: I wrote this article, and it was translated into a few different languages. In the talk that I gave, I talked about my article. It’s funny b/c I wasn’t expecting all of this attention. 33:33 – Guest: I was nervous when I gave the talk so I don’t think it was that good. (Laughs.) 33:50 – Guest: We are human beings and we are always making mistakes, which is okay. 36:55 – Chuck: Yeah I run into that, too. Especially when running the podcast. 37:14 – Guest: That’s apart of the game right? We like to play with new technologies and if it weren’t for experimenting with new stuff our whole industry wouldn’t be as fun. We have the freedom to test, and we get to break tings and not get fired. That’s apart of our jobs. 37:51 – Panel: That’s a good point. A service like beanstalk or Heroku it’s easy to push your app out into the world. But when you dig in deeper, I think that knowledge really starts to seep in and you get to be a better developer. 38:27 – Chuck comments on this topic. 39:12 – Panel: To Pedro’s point... 39:42 – Guest: Yes, we work as a frontend or backend developer or a system administrator, but we need to understand the infrastructure. I want to know and when I know more then my work as a backend developer will improve and communicate with the system. That people know how to use Ruby on Rails and they get used to it but forget about database behind that, and...where you can write your own inquires. They think it’s not their job, but it IS their job. 41:17 – Chuck: To take that step one step further. Chuck talks about performance issues, codes, and more. 41:48 – Chuck: I want to try out Dokku! 42:00 – Guest comments. 43:53 – Chuck: Let’s do Picks! 44:00 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular React React Native Docker Kubernetes Heroku Beanstalk CodeFund Amazon S3 GitHub: Kubernetes IMDB – Pedro C. FB: RR – DevChat TV RR 382 Episode Pedro’s blog article: “Creating a Heroku-Like Deployment Solution with Docker” Comic of Code Compiling GitHub: Dokku/Dokku Digital Ocean: Dokku Digital Ocean: Cloud Hosting App Developers Love Pedro’s Website Pedro’s Twitter Pedro’s Crunchbase Pedro’s GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Dave Legos Rubix’s Cube Eric Digital Ocean @samantha_tse @jna_sh @Zaltsman Nate Alone - History Channel Charles MF CEO - Podcast Extreme Ownership - Book Drip TheDevRev.com Pedro Di.FM Shortcut Foo
Panel: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more! Show Topics: 0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous! 1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now? 2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React. The guest talks about Node, React, tools, and more! 4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what? 5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider. The guest gives hypothetical situations that people could face. 6:27 – Aimee. 6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but... 7:22 – Aimee: I totally agree and I could go on and on and on. 7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app. I guess I just need advice in this area, I guess. 8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought. 10:20 – Guest: Don’t mock too much. 10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that. 11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite. 12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff. 13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database. 13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing. 14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition. 14:47 – Guest: Write the code, and then write the tests. The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please? 16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns. 18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection. 19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it. 19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc. 20:09 – Panel. 20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package. 20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested? 21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach. 24:35 – Chuck: When you say integration test what do you mean? 24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time. 26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter? 28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools. 28:39 – Aimee: Yes and no. I think some tools are outdated. 28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the 29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide? 29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser. The guest continues with this topic. 30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them. 31:21 – Aimee: I think they are focusing on mobile more. 31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers. 32:32 – Guest: Selenium is a Swiss knife – it can do everything. 33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about? 33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down? 36:06 – Guest. 38:30 – Chuck: You run tests against production? 38:45 – Guest: Don’t run tests against production...let me clarify! 39:14 – Chuck. 39:21 – Guest: When I am talking about integration testing in the backend... 40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend. I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too. 43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months? 43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this... 44:40 – Guest: Frontend is so visual. 45:12 – Chuck: What are you working on now? 45:16 – Guest: I am working with Applitools and I was impressed with what they were doing. The guest goes into further detail. 46:08 – Guest: Those screenshots are never the same. 48:36 – Panel: It’s...comparing the output to the static site to the... 48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the tests. 50:28 – Guest: I am working mostly (right now) in backend. 50:40 – Chuck: Anything else? Picks! 50:57 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Elixir Node.js Puppeteer Cypress SeleniumHQ Article – Ideas.Ted.Com Book: Never Split the Difference Applitools Guest’s Blog Article about Cypress vs. Selenium Gil’s Twitter Gil’s Medium Gil’s LinkedIn Sponsors: Kendo UI Sentry CacheFly Picks: Aimee How Showing Vulnerability Helps Build a Stronger Team AJ Never Split the Difference Project - TeleBit Charles Monster Hunter International Metabase Gil Cat Zero The Origin of Consciousness in the Breakdown of the Bicameral Mind
Panel: Dave Kimura Eric Berry Charles Max Wood Nate Hopkins Special Guest: Pedro Cavalheiro In this episode of Ruby Rogues, the panelists talk with Pedro Cavalheiro who is from Brazil, but currently resides in Hamburg, Germany where he works at Xing. He is a software engineer, an actor, and has been working with the web since 2010. He has worked mostly with Ruby and PHP languages, and since 2015 has worked full-time with Ruby on Rails. The panelists and Pedro talk about his background and his article. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Panel is Eric, Dave, Nate, myself – and our special guest is Pedro Cavalheiro! Please introduce yourself! Is that Spanish or Portuguese? Chuck: P.S. – The DevRev is my new show and check it! 1:57 – Guest: My name means gentleman! Here at your service. 2:05 – Guest: I am a developer and worked with web technologies for 10 years. I do some DevOps stuff and working with Ruby. I just moved to Hamburg, Germany with the same company. 3:02 – Chuck: How do you make that decision? 3:07 – Guest: There is no magical answer. It depends on your needs and what time you have? At the time when I wrote that article I worked with a small startup company. For us, we used Heroku at the time. 4:09 – Guest: Current company is bigger and 500 developers. We have different ops teams and they have their own infrastructure and tools. They have more money, time, and people. For what they need it needs to be more scalable. It depends on the company and the requirements and your resources. 5:00 – Panel: I need to preface first: I love hosted solutions, but at the same time there is a hidden cost set that people don’t think about. 6:16 – Guest: If you compare your own infrastructure vs. cloud platform they will think that it is cheaper than having a hosted solution. 7:28 – Chuck: Yeah, that’s a discussion that I find that I have with myself and with my own company. It makes a ton of sense to have some system setup and it’s something that I am managing. 8:05 – Panelists talks about AWS and AMI. 9:06 – Guest. 9:21 – Panel: Can you talk about the article you wrote? Why did you write it? Give us some context into the article and where are we now? 9:48 – Guest talks in-detail about his article and where he was in life when he wrote this article! 14:10 – Panel: How much time did you invest into that? 14:16 – Guest: Less than a week; maybe 3-4 days for the whole process. Writing the article took about 2 days. 14:50 – Chuck talks about Docker, Azure, Dokku among other things. Question: Where do you look at all of these different things, and how do evaluate? 16:02 – Guest: I am a huge Heroku fan, and I would suggest people to use it. It’s brilliant. The company I work today it could be expensive to use b/c it’s a heavy load application and it won’t work. As for me (personal projects) I will play around these different tools. 19:02 – Panel: It’s easy to get up and running of Heroku. I think it’s similar to Kubernetes. 20:00 – Guest: I agree with that. The guest shares a story that relates to this topic. 21:45 – Panel: If you are using self-hosted...put some security on your application. Even if it’s just a demo you are protecting your environment. 22:17 – Chuck: Where do you guys come down on making these types of decisions? 22:30 – Panel: I see it as an investment; especially if your development team is small. Eventually, it will scale but in the early days of a project it is a legit choice to use Heroku or Beanstalk. CodeFund is still on Heroku. Right now it’s solving those problems for us. 23:45 – Chuck: Look at everything that we are all running. What do you guys recommend? 24:19 – Panel: I use S3, elastic search, among other things. 25:56 – Guest: I have a similar story. I had some friends who were spending more than $2,000 a month on Heroku. We tried to find how to reduce the amount of money. We removed the application from the Heroku and put it inside a local machine (probably $800 computer) that runs 24/7 and the only expenses were Internet ($50.00 / month) and 1 SSD ($100) and 1 micro-server through Amazon. Now it works and we were spending over 200x the amount that we needed to. In this example it wasn’t a critical system. In this case self-host was far better and cheaper, so it really depends on your case. 28:08 – Panel: Yeah, sometimes the old school and simple solutions are it. 28:26 – Chuck: I have a virtual machine/servers on Digital Ocean, and I cap deploy. I will login in every-now-and-then, but that’s it. 28:50 – Panel adds in his comments to this topic. 29:17 – Guest: Sometimes these old school solutions tend to be slower, but it depends on what you need for that situation. 29:50 – Chuck: David Brady called that his “Time to Twitter.” 30:04 – Fresh Books! 31:10 – Chuck: Can you talk about your discussion about this, please? 31:23 – Guest: I wrote this article, and it was translated into a few different languages. In the talk that I gave, I talked about my article. It’s funny b/c I wasn’t expecting all of this attention. 33:33 – Guest: I was nervous when I gave the talk so I don’t think it was that good. (Laughs.) 33:50 – Guest: We are human beings and we are always making mistakes, which is okay. 36:55 – Chuck: Yeah I run into that, too. Especially when running the podcast. 37:14 – Guest: That’s apart of the game right? We like to play with new technologies and if it weren’t for experimenting with new stuff our whole industry wouldn’t be as fun. We have the freedom to test, and we get to break tings and not get fired. That’s apart of our jobs. 37:51 – Panel: That’s a good point. A service like beanstalk or Heroku it’s easy to push your app out into the world. But when you dig in deeper, I think that knowledge really starts to seep in and you get to be a better developer. 38:27 – Chuck comments on this topic. 39:12 – Panel: To Pedro’s point... 39:42 – Guest: Yes, we work as a frontend or backend developer or a system administrator, but we need to understand the infrastructure. I want to know and when I know more then my work as a backend developer will improve and communicate with the system. That people know how to use Ruby on Rails and they get used to it but forget about database behind that, and...where you can write your own inquires. They think it’s not their job, but it IS their job. 41:17 – Chuck: To take that step one step further. Chuck talks about performance issues, codes, and more. 41:48 – Chuck: I want to try out Dokku! 42:00 – Guest comments. 43:53 – Chuck: Let’s do Picks! 44:00 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular React React Native Docker Kubernetes Heroku Beanstalk CodeFund Amazon S3 GitHub: Kubernetes IMDB – Pedro C. FB: RR – DevChat TV RR 382 Episode Pedro’s blog article: “Creating a Heroku-Like Deployment Solution with Docker” Comic of Code Compiling GitHub: Dokku/Dokku Digital Ocean: Dokku Digital Ocean: Cloud Hosting App Developers Love Pedro’s Website Pedro’s Twitter Pedro’s Crunchbase Pedro’s GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Dave Legos Rubix’s Cube Eric Digital Ocean @samantha_tse @jna_sh @Zaltsman Nate Alone - History Channel Charles MF CEO - Podcast Extreme Ownership - Book Drip TheDevRev.com Pedro Di.FM Shortcut Foo
Panel: Dave Kimura Eric Berry Charles Max Wood Nate Hopkins Special Guest: Pedro Cavalheiro In this episode of Ruby Rogues, the panelists talk with Pedro Cavalheiro who is from Brazil, but currently resides in Hamburg, Germany where he works at Xing. He is a software engineer, an actor, and has been working with the web since 2010. He has worked mostly with Ruby and PHP languages, and since 2015 has worked full-time with Ruby on Rails. The panelists and Pedro talk about his background and his article. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Panel is Eric, Dave, Nate, myself – and our special guest is Pedro Cavalheiro! Please introduce yourself! Is that Spanish or Portuguese? Chuck: P.S. – The DevRev is my new show and check it! 1:57 – Guest: My name means gentleman! Here at your service. 2:05 – Guest: I am a developer and worked with web technologies for 10 years. I do some DevOps stuff and working with Ruby. I just moved to Hamburg, Germany with the same company. 3:02 – Chuck: How do you make that decision? 3:07 – Guest: There is no magical answer. It depends on your needs and what time you have? At the time when I wrote that article I worked with a small startup company. For us, we used Heroku at the time. 4:09 – Guest: Current company is bigger and 500 developers. We have different ops teams and they have their own infrastructure and tools. They have more money, time, and people. For what they need it needs to be more scalable. It depends on the company and the requirements and your resources. 5:00 – Panel: I need to preface first: I love hosted solutions, but at the same time there is a hidden cost set that people don’t think about. 6:16 – Guest: If you compare your own infrastructure vs. cloud platform they will think that it is cheaper than having a hosted solution. 7:28 – Chuck: Yeah, that’s a discussion that I find that I have with myself and with my own company. It makes a ton of sense to have some system setup and it’s something that I am managing. 8:05 – Panelists talks about AWS and AMI. 9:06 – Guest. 9:21 – Panel: Can you talk about the article you wrote? Why did you write it? Give us some context into the article and where are we now? 9:48 – Guest talks in-detail about his article and where he was in life when he wrote this article! 14:10 – Panel: How much time did you invest into that? 14:16 – Guest: Less than a week; maybe 3-4 days for the whole process. Writing the article took about 2 days. 14:50 – Chuck talks about Docker, Azure, Dokku among other things. Question: Where do you look at all of these different things, and how do evaluate? 16:02 – Guest: I am a huge Heroku fan, and I would suggest people to use it. It’s brilliant. The company I work today it could be expensive to use b/c it’s a heavy load application and it won’t work. As for me (personal projects) I will play around these different tools. 19:02 – Panel: It’s easy to get up and running of Heroku. I think it’s similar to Kubernetes. 20:00 – Guest: I agree with that. The guest shares a story that relates to this topic. 21:45 – Panel: If you are using self-hosted...put some security on your application. Even if it’s just a demo you are protecting your environment. 22:17 – Chuck: Where do you guys come down on making these types of decisions? 22:30 – Panel: I see it as an investment; especially if your development team is small. Eventually, it will scale but in the early days of a project it is a legit choice to use Heroku or Beanstalk. CodeFund is still on Heroku. Right now it’s solving those problems for us. 23:45 – Chuck: Look at everything that we are all running. What do you guys recommend? 24:19 – Panel: I use S3, elastic search, among other things. 25:56 – Guest: I have a similar story. I had some friends who were spending more than $2,000 a month on Heroku. We tried to find how to reduce the amount of money. We removed the application from the Heroku and put it inside a local machine (probably $800 computer) that runs 24/7 and the only expenses were Internet ($50.00 / month) and 1 SSD ($100) and 1 micro-server through Amazon. Now it works and we were spending over 200x the amount that we needed to. In this example it wasn’t a critical system. In this case self-host was far better and cheaper, so it really depends on your case. 28:08 – Panel: Yeah, sometimes the old school and simple solutions are it. 28:26 – Chuck: I have a virtual machine/servers on Digital Ocean, and I cap deploy. I will login in every-now-and-then, but that’s it. 28:50 – Panel adds in his comments to this topic. 29:17 – Guest: Sometimes these old school solutions tend to be slower, but it depends on what you need for that situation. 29:50 – Chuck: David Brady called that his “Time to Twitter.” 30:04 – Fresh Books! 31:10 – Chuck: Can you talk about your discussion about this, please? 31:23 – Guest: I wrote this article, and it was translated into a few different languages. In the talk that I gave, I talked about my article. It’s funny b/c I wasn’t expecting all of this attention. 33:33 – Guest: I was nervous when I gave the talk so I don’t think it was that good. (Laughs.) 33:50 – Guest: We are human beings and we are always making mistakes, which is okay. 36:55 – Chuck: Yeah I run into that, too. Especially when running the podcast. 37:14 – Guest: That’s apart of the game right? We like to play with new technologies and if it weren’t for experimenting with new stuff our whole industry wouldn’t be as fun. We have the freedom to test, and we get to break tings and not get fired. That’s apart of our jobs. 37:51 – Panel: That’s a good point. A service like beanstalk or Heroku it’s easy to push your app out into the world. But when you dig in deeper, I think that knowledge really starts to seep in and you get to be a better developer. 38:27 – Chuck comments on this topic. 39:12 – Panel: To Pedro’s point... 39:42 – Guest: Yes, we work as a frontend or backend developer or a system administrator, but we need to understand the infrastructure. I want to know and when I know more then my work as a backend developer will improve and communicate with the system. That people know how to use Ruby on Rails and they get used to it but forget about database behind that, and...where you can write your own inquires. They think it’s not their job, but it IS their job. 41:17 – Chuck: To take that step one step further. Chuck talks about performance issues, codes, and more. 41:48 – Chuck: I want to try out Dokku! 42:00 – Guest comments. 43:53 – Chuck: Let’s do Picks! 44:00 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular React React Native Docker Kubernetes Heroku Beanstalk CodeFund Amazon S3 GitHub: Kubernetes IMDB – Pedro C. FB: RR – DevChat TV RR 382 Episode Pedro’s blog article: “Creating a Heroku-Like Deployment Solution with Docker” Comic of Code Compiling GitHub: Dokku/Dokku Digital Ocean: Dokku Digital Ocean: Cloud Hosting App Developers Love Pedro’s Website Pedro’s Twitter Pedro’s Crunchbase Pedro’s GitHub Sponsors: Sentry CacheFly Fresh Books Picks: Dave Legos Rubix’s Cube Eric Digital Ocean @samantha_tse @jna_sh @Zaltsman Nate Alone - History Channel Charles MF CEO - Podcast Extreme Ownership - Book Drip TheDevRev.com Pedro Di.FM Shortcut Foo
Panel: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more! Show Topics: 0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous! 1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now? 2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React. The guest talks about Node, React, tools, and more! 4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what? 5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider. The guest gives hypothetical situations that people could face. 6:27 – Aimee. 6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but... 7:22 – Aimee: I totally agree and I could go on and on and on. 7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app. I guess I just need advice in this area, I guess. 8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought. 10:20 – Guest: Don’t mock too much. 10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that. 11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite. 12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff. 13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database. 13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing. 14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition. 14:47 – Guest: Write the code, and then write the tests. The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please? 16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns. 18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection. 19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it. 19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc. 20:09 – Panel. 20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package. 20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested? 21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach. 24:35 – Chuck: When you say integration test what do you mean? 24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time. 26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter? 28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools. 28:39 – Aimee: Yes and no. I think some tools are outdated. 28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the 29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide? 29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser. The guest continues with this topic. 30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them. 31:21 – Aimee: I think they are focusing on mobile more. 31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers. 32:32 – Guest: Selenium is a Swiss knife – it can do everything. 33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about? 33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down? 36:06 – Guest. 38:30 – Chuck: You run tests against production? 38:45 – Guest: Don’t run tests against production...let me clarify! 39:14 – Chuck. 39:21 – Guest: When I am talking about integration testing in the backend... 40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend. I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too. 43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months? 43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this... 44:40 – Guest: Frontend is so visual. 45:12 – Chuck: What are you working on now? 45:16 – Guest: I am working with Applitools and I was impressed with what they were doing. The guest goes into further detail. 46:08 – Guest: Those screenshots are never the same. 48:36 – Panel: It’s...comparing the output to the static site to the... 48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the tests. 50:28 – Guest: I am working mostly (right now) in backend. 50:40 – Chuck: Anything else? Picks! 50:57 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Elixir Node.js Puppeteer Cypress SeleniumHQ Article – Ideas.Ted.Com Book: Never Split the Difference Applitools Guest’s Blog Article about Cypress vs. Selenium Gil’s Twitter Gil’s Medium Gil’s LinkedIn Sponsors: Kendo UI Sentry CacheFly Picks: Aimee How Showing Vulnerability Helps Build a Stronger Team AJ Never Split the Difference Project - TeleBit Charles Monster Hunter International Metabase Gil Cat Zero The Origin of Consciousness in the Breakdown of the Bicameral Mind
Panel: Aimee Knight AJ O’Neal Joe Eames Charles Max Wood Chris Ferdinandi Special Guest: Julian Fahrer In this episode, the panel talks with Julian Fahrer who is an online educator and software engineer in San Francisco, California (USA). The panel and the guest talk about containers, tooling, Docker, Kubernetes, and more. Check out today’s episode! Show Topics: 0:00 – Advertisement: KENDO UI 1:00 – Chuck: We have today Julian. Julian, please tell us why you are famous? 1:10 – Julian (Guest): I am a software engineer in San Francisco. 1:35 – Chuck: We had you on Elixir Mix before – so here you are! Give us a brief introduction – tell us about the 1:56 – Julian: About 11 hours. You can get it done in about 1 week. It’s a lot to learn. It’s a new paradigm, and I think that’s why people like it. 2:22 – Aimee: How did you dive into Docker? I feel that is like backend space? 2:35 – Julian: I am a full stack engineer and I have been in backend, too. 3:10 – Aimee: I know that someone has been in-charge of our Dev Ops process until the first job I’ve had. When there is a problem in the deployment, I want to unblock myself and not wait for someone else. I think it’s a valuable topic. Why Docker over the other options? 3:58 – Julian: Let’s talk about what Docker is first? 4:12 – Chuck. 4:23 – Julian: Containers are a technology for us to run applications in isolation from each other. Julian talks in-detail about what contains are, what they do, he gives examples, and more. Check it out here! 5:27 – Chuck: Makes sense to me. I think it’s interesting that you are talking about the dependencies. Because of the way the Docker works it’s consistent across all of your applications. 5:59 – Julian. Yes, exactly. Julian talks about containers some more! 6:56 – Chuck asks a question about the container, Docker, and others. 7:03 – Guest: You don’t have to worry about your company’s running operating system, and what you want to use – basically everything runs in the container... 7:30 – Chuck: This short-circuits a lot of it. 7:46 – Guest. 8:00 – Chuck: People will use Docker if your employer mandates it. Is there a learning curve and how do you adapt it within the person’s company? 8:25 – Guest. 8:52 – Aimee: We are using it, too. 8:57 – Guest: Awesome! 9:03 – Aimee: The only downfall is that if you have people who are NOT familiar with it – then it’s a black box for us. We can’t troubleshoot it ourselves. I want to be able to unblock from our end w/o having to go to someone else. That’s my only issue I’ve been having. 10:03 – Guest: I want to see that tooling to be honest. 10:12 – Aimee: Can you talk about how Civil and Docker work together? 10:19 – Guest: Yes! Julian answers the question. 10:56 – Chuck: How much work it is to get a Docker file to get up and running? How much work would it take? 11:18 – Guest: For the development side in about an hour or two – this is if you understand it already. Putting it into production that’s a different story b/c there is a million different ways to do it. It’s hard to put a time on that. 12:24 – Chuck: Let’s assume they have the basic knowledge (they get how server setup takes place) is this something you could figure out in a day or so? 12:47 – Guest: If you have touched Docker then you can do it in a day; if never then not really. 13:02 – Guest: There might be some stones you will fall over. 13:39 – Panel: The part of the learning curve would be... 13:52 – Guest: The idea behind the container is that the container should be disposable. You could throw it away and then start a new one and it’s fresh and clean. Guest continues with his answer. 15:20 – Chuck: I have seen people do this with their database engine. If you need to upgrade your database then they grab their container... 15:55 – Guest: You don’t have to worry about setting it up - its provided in the container and... 16:09 – Chuck asks a question. 16:17 – Guest: For production, I would go with a hosted database like RJS, Azure, or other options. Guest continues. 17:13 – Chuck. 17:20 – Guest: If it dies then you need to... 17:30 – Chuck: We talked about an idea of these containers being something you can hand around in your development team. Chuck asks a question. 17:50 – Guest answers the question. He talks about tooling, containers, web frontend, and more. 18:48 – Guest asks Aimee a question: Are you using Compost? 18:50 – Aimee: I don’t know b/c that is a black box for us. I don’t know much about our Docker setup. 19:00 – Guest to Aimee: Can I ask you some questions? 19:14 – Guest is giving Aimee some hypothetical situations and asks what their process is like. 19:32 – Aimee answers the question. 20:11 – Guest: You have customizing tooling to be able to do x, y, and z. 20:25 – Aimee: They have hit a wall, but it’s frustrating. Our frontend and our backend are different. We are getting 500’s and it’s a black box for us. It’s the way that ops have it setup. I hate having to go to them for them to unblock us. 21:07 – Chuck: I have been hearing about Kubernetes. When will you start to see that it pays off to use it? 21:20 – Guest answers the question. 22:17 – If I have a simple app on a few different machines and front end and job servers I may not need Kubernetes. But if I have a lot of things that it depends on then I will need it? 22:35 – Guest: Yes. 22:40 – Chuck: What are the steps to using it? 22:45 – Guest: Step #1 you install it. The guest goes through the different steps to use Docker. 25:23 – Aimee: It makes sense that your UI and your database don’t live in the same container, but what about your API and your database should that be separate? 25:40 – Guest: Yes they should be separate. 26:09 – Chuck: What has your experience been with Docker – AJ or Chris? 26:17 – Panel: I have used a little bit at work and so far it’s been a black box for me. I like the IDEA of it, but I probably need to take Julian’s course to learn more about it! (Aimee agrees!) One thing I would love (from your perspective, Julian) – if I wanted to get started with this (and say I have not worked with containers before) where would I start? 28:22 – Advertisement – Sentry.io 29:20 – Guest: Good question. You don’t have to be an expert (to use Docker), but you have to be comfortable with the command line, though. 30:17 – Panel: Is there a dummy practice within your course? 30:27 – Julian: We run our own web server and... 30:44 – Panel: I need to check out your course! 31:04 – Guest: It is some time investment, but it’s saved me so much time already so it makes it really worth it. 31:38 – Panel: You are a version behind on Ruby. 31:46 – Guest: ...I just want to make code and not worry about that. 32:04 – Chuck: Updating your server – you would update Ruby and reinstall your gems and hope that they were all up-to-date. Now you don’t have to do it that way anymore. 32:37 – Guest: You know it will behave the same way. 32:48 – Guest: I have some experience with Docker. I understand its value. I guess I will share my frustrations. Not in Docker itself, but the fact that there is a need for Docker... 35:06 – Chuck. 35:12 – Panel: We need someone to come up with... 35:40 – Panel: It’s not standard JavaScript. 35:51 – Chuck: One question: How do you setup multiple stages of Docker? 36:12 – Guest: The recommended way is to have the same Docker file used in the development sate and through to production. So that way it’s the same image. 37:00 – Panel: ...you must do your entire configuration via the environmental variables. 37:29 – Chuck asks a question. 37:36 – Panel: If you are using Heroku or Circle CI...there is a page... 38:11 – Guest and Chuck go back-and-forth. 39:17 – Chuck: Gottcha. 39:18 – Guest. 39:52 – Chuck: I have seen systems that have hyberized things like using Chef Solo and... You do your basic setup then use Chef Solo – that doesn’t’ make sense to me. Have you seen people use this setup before? 40:20 – Guest: I guess I wouldn’t do it. 40:30 – Chuck. 40:36 – Guest: Only reason I would do that is that it works across many different platforms. If it makes your setup easier then go for it. 41:14 – Chuck: Docker Hub – I want to mention that. How robust is that? Can you put private images up there? 41:38 – Guest: You can go TOTALLY nuts with it. You could have private and public images. Also, your own version. Under the hood it’s called container registry. Yeah, you can change images, too. 42:22 – Chuck: Should I use container registry or a CI system to build the Docker system and use it somewhere else? 42:35 – Guest. 43:24 – Chuck: Where can people find your Docker course? 43:30 – Guest: LEARN DOCKER ONLINE! We are restructuring the prices. Make sure to check it out. 44:05 – Chuck: Picks! Where can people find you online? 44:14 – Guest: Twitter! eBook – Rails and Docker! Code Tails IO! Links: JavaScript jQuery React Elixir Elm Vue ESLint Node.js Circle CI Twitter – Circle CI Heroku Surge.sh Kubernetes.io Berg Design Rian Rietveld PickleJS Soft Cover.io Ebook – boilerplate EMx 010 Episode with Julian Fahrer Learn Docker Indie Hacker – Julian Fahrer LinkedIn – Julian Fahrer GitHub – Julian Fahrer Twitter – Julian Fahrer Sponsors: Kendo UI Sentry Cache Fly Picks: AJ Zermatt Resort Heber Area Aimee Surge.sh Chris BergDesign React, WP, and a11y gomakethings.com Joe Docker Videos by Dan Wahlin Rock Climbing/Indoor Rock Climbing Charles Extreme Ownership - Book Playing DND Julian PickleJS Postive Intelligence
Panel: Aimee Knight AJ O’Neal Joe Eames Charles Max Wood Chris Ferdinandi Special Guest: Julian Fahrer In this episode, the panel talks with Julian Fahrer who is an online educator and software engineer in San Francisco, California (USA). The panel and the guest talk about containers, tooling, Docker, Kubernetes, and more. Check out today’s episode! Show Topics: 0:00 – Advertisement: KENDO UI 1:00 – Chuck: We have today Julian. Julian, please tell us why you are famous? 1:10 – Julian (Guest): I am a software engineer in San Francisco. 1:35 – Chuck: We had you on Elixir Mix before – so here you are! Give us a brief introduction – tell us about the 1:56 – Julian: About 11 hours. You can get it done in about 1 week. It’s a lot to learn. It’s a new paradigm, and I think that’s why people like it. 2:22 – Aimee: How did you dive into Docker? I feel that is like backend space? 2:35 – Julian: I am a full stack engineer and I have been in backend, too. 3:10 – Aimee: I know that someone has been in-charge of our Dev Ops process until the first job I’ve had. When there is a problem in the deployment, I want to unblock myself and not wait for someone else. I think it’s a valuable topic. Why Docker over the other options? 3:58 – Julian: Let’s talk about what Docker is first? 4:12 – Chuck. 4:23 – Julian: Containers are a technology for us to run applications in isolation from each other. Julian talks in-detail about what contains are, what they do, he gives examples, and more. Check it out here! 5:27 – Chuck: Makes sense to me. I think it’s interesting that you are talking about the dependencies. Because of the way the Docker works it’s consistent across all of your applications. 5:59 – Julian. Yes, exactly. Julian talks about containers some more! 6:56 – Chuck asks a question about the container, Docker, and others. 7:03 – Guest: You don’t have to worry about your company’s running operating system, and what you want to use – basically everything runs in the container... 7:30 – Chuck: This short-circuits a lot of it. 7:46 – Guest. 8:00 – Chuck: People will use Docker if your employer mandates it. Is there a learning curve and how do you adapt it within the person’s company? 8:25 – Guest. 8:52 – Aimee: We are using it, too. 8:57 – Guest: Awesome! 9:03 – Aimee: The only downfall is that if you have people who are NOT familiar with it – then it’s a black box for us. We can’t troubleshoot it ourselves. I want to be able to unblock from our end w/o having to go to someone else. That’s my only issue I’ve been having. 10:03 – Guest: I want to see that tooling to be honest. 10:12 – Aimee: Can you talk about how Civil and Docker work together? 10:19 – Guest: Yes! Julian answers the question. 10:56 – Chuck: How much work it is to get a Docker file to get up and running? How much work would it take? 11:18 – Guest: For the development side in about an hour or two – this is if you understand it already. Putting it into production that’s a different story b/c there is a million different ways to do it. It’s hard to put a time on that. 12:24 – Chuck: Let’s assume they have the basic knowledge (they get how server setup takes place) is this something you could figure out in a day or so? 12:47 – Guest: If you have touched Docker then you can do it in a day; if never then not really. 13:02 – Guest: There might be some stones you will fall over. 13:39 – Panel: The part of the learning curve would be... 13:52 – Guest: The idea behind the container is that the container should be disposable. You could throw it away and then start a new one and it’s fresh and clean. Guest continues with his answer. 15:20 – Chuck: I have seen people do this with their database engine. If you need to upgrade your database then they grab their container... 15:55 – Guest: You don’t have to worry about setting it up - its provided in the container and... 16:09 – Chuck asks a question. 16:17 – Guest: For production, I would go with a hosted database like RJS, Azure, or other options. Guest continues. 17:13 – Chuck. 17:20 – Guest: If it dies then you need to... 17:30 – Chuck: We talked about an idea of these containers being something you can hand around in your development team. Chuck asks a question. 17:50 – Guest answers the question. He talks about tooling, containers, web frontend, and more. 18:48 – Guest asks Aimee a question: Are you using Compost? 18:50 – Aimee: I don’t know b/c that is a black box for us. I don’t know much about our Docker setup. 19:00 – Guest to Aimee: Can I ask you some questions? 19:14 – Guest is giving Aimee some hypothetical situations and asks what their process is like. 19:32 – Aimee answers the question. 20:11 – Guest: You have customizing tooling to be able to do x, y, and z. 20:25 – Aimee: They have hit a wall, but it’s frustrating. Our frontend and our backend are different. We are getting 500’s and it’s a black box for us. It’s the way that ops have it setup. I hate having to go to them for them to unblock us. 21:07 – Chuck: I have been hearing about Kubernetes. When will you start to see that it pays off to use it? 21:20 – Guest answers the question. 22:17 – If I have a simple app on a few different machines and front end and job servers I may not need Kubernetes. But if I have a lot of things that it depends on then I will need it? 22:35 – Guest: Yes. 22:40 – Chuck: What are the steps to using it? 22:45 – Guest: Step #1 you install it. The guest goes through the different steps to use Docker. 25:23 – Aimee: It makes sense that your UI and your database don’t live in the same container, but what about your API and your database should that be separate? 25:40 – Guest: Yes they should be separate. 26:09 – Chuck: What has your experience been with Docker – AJ or Chris? 26:17 – Panel: I have used a little bit at work and so far it’s been a black box for me. I like the IDEA of it, but I probably need to take Julian’s course to learn more about it! (Aimee agrees!) One thing I would love (from your perspective, Julian) – if I wanted to get started with this (and say I have not worked with containers before) where would I start? 28:22 – Advertisement – Sentry.io 29:20 – Guest: Good question. You don’t have to be an expert (to use Docker), but you have to be comfortable with the command line, though. 30:17 – Panel: Is there a dummy practice within your course? 30:27 – Julian: We run our own web server and... 30:44 – Panel: I need to check out your course! 31:04 – Guest: It is some time investment, but it’s saved me so much time already so it makes it really worth it. 31:38 – Panel: You are a version behind on Ruby. 31:46 – Guest: ...I just want to make code and not worry about that. 32:04 – Chuck: Updating your server – you would update Ruby and reinstall your gems and hope that they were all up-to-date. Now you don’t have to do it that way anymore. 32:37 – Guest: You know it will behave the same way. 32:48 – Guest: I have some experience with Docker. I understand its value. I guess I will share my frustrations. Not in Docker itself, but the fact that there is a need for Docker... 35:06 – Chuck. 35:12 – Panel: We need someone to come up with... 35:40 – Panel: It’s not standard JavaScript. 35:51 – Chuck: One question: How do you setup multiple stages of Docker? 36:12 – Guest: The recommended way is to have the same Docker file used in the development sate and through to production. So that way it’s the same image. 37:00 – Panel: ...you must do your entire configuration via the environmental variables. 37:29 – Chuck asks a question. 37:36 – Panel: If you are using Heroku or Circle CI...there is a page... 38:11 – Guest and Chuck go back-and-forth. 39:17 – Chuck: Gottcha. 39:18 – Guest. 39:52 – Chuck: I have seen systems that have hyberized things like using Chef Solo and... You do your basic setup then use Chef Solo – that doesn’t’ make sense to me. Have you seen people use this setup before? 40:20 – Guest: I guess I wouldn’t do it. 40:30 – Chuck. 40:36 – Guest: Only reason I would do that is that it works across many different platforms. If it makes your setup easier then go for it. 41:14 – Chuck: Docker Hub – I want to mention that. How robust is that? Can you put private images up there? 41:38 – Guest: You can go TOTALLY nuts with it. You could have private and public images. Also, your own version. Under the hood it’s called container registry. Yeah, you can change images, too. 42:22 – Chuck: Should I use container registry or a CI system to build the Docker system and use it somewhere else? 42:35 – Guest. 43:24 – Chuck: Where can people find your Docker course? 43:30 – Guest: LEARN DOCKER ONLINE! We are restructuring the prices. Make sure to check it out. 44:05 – Chuck: Picks! Where can people find you online? 44:14 – Guest: Twitter! eBook – Rails and Docker! Code Tails IO! Links: JavaScript jQuery React Elixir Elm Vue ESLint Node.js Circle CI Twitter – Circle CI Heroku Surge.sh Kubernetes.io Berg Design Rian Rietveld PickleJS Soft Cover.io Ebook – boilerplate EMx 010 Episode with Julian Fahrer Learn Docker Indie Hacker – Julian Fahrer LinkedIn – Julian Fahrer GitHub – Julian Fahrer Twitter – Julian Fahrer Sponsors: Kendo UI Sentry Cache Fly Picks: AJ Zermatt Resort Heber Area Aimee Surge.sh Chris BergDesign React, WP, and a11y gomakethings.com Joe Docker Videos by Dan Wahlin Rock Climbing/Indoor Rock Climbing Charles Extreme Ownership - Book Playing DND Julian PickleJS Postive Intelligence
Panel: Aimee Knight AJ O’Neal Joe Eames Charles Max Wood Chris Ferdinandi Special Guest: Julian Fahrer In this episode, the panel talks with Julian Fahrer who is an online educator and software engineer in San Francisco, California (USA). The panel and the guest talk about containers, tooling, Docker, Kubernetes, and more. Check out today’s episode! Show Topics: 0:00 – Advertisement: KENDO UI 1:00 – Chuck: We have today Julian. Julian, please tell us why you are famous? 1:10 – Julian (Guest): I am a software engineer in San Francisco. 1:35 – Chuck: We had you on Elixir Mix before – so here you are! Give us a brief introduction – tell us about the 1:56 – Julian: About 11 hours. You can get it done in about 1 week. It’s a lot to learn. It’s a new paradigm, and I think that’s why people like it. 2:22 – Aimee: How did you dive into Docker? I feel that is like backend space? 2:35 – Julian: I am a full stack engineer and I have been in backend, too. 3:10 – Aimee: I know that someone has been in-charge of our Dev Ops process until the first job I’ve had. When there is a problem in the deployment, I want to unblock myself and not wait for someone else. I think it’s a valuable topic. Why Docker over the other options? 3:58 – Julian: Let’s talk about what Docker is first? 4:12 – Chuck. 4:23 – Julian: Containers are a technology for us to run applications in isolation from each other. Julian talks in-detail about what contains are, what they do, he gives examples, and more. Check it out here! 5:27 – Chuck: Makes sense to me. I think it’s interesting that you are talking about the dependencies. Because of the way the Docker works it’s consistent across all of your applications. 5:59 – Julian. Yes, exactly. Julian talks about containers some more! 6:56 – Chuck asks a question about the container, Docker, and others. 7:03 – Guest: You don’t have to worry about your company’s running operating system, and what you want to use – basically everything runs in the container... 7:30 – Chuck: This short-circuits a lot of it. 7:46 – Guest. 8:00 – Chuck: People will use Docker if your employer mandates it. Is there a learning curve and how do you adapt it within the person’s company? 8:25 – Guest. 8:52 – Aimee: We are using it, too. 8:57 – Guest: Awesome! 9:03 – Aimee: The only downfall is that if you have people who are NOT familiar with it – then it’s a black box for us. We can’t troubleshoot it ourselves. I want to be able to unblock from our end w/o having to go to someone else. That’s my only issue I’ve been having. 10:03 – Guest: I want to see that tooling to be honest. 10:12 – Aimee: Can you talk about how Civil and Docker work together? 10:19 – Guest: Yes! Julian answers the question. 10:56 – Chuck: How much work it is to get a Docker file to get up and running? How much work would it take? 11:18 – Guest: For the development side in about an hour or two – this is if you understand it already. Putting it into production that’s a different story b/c there is a million different ways to do it. It’s hard to put a time on that. 12:24 – Chuck: Let’s assume they have the basic knowledge (they get how server setup takes place) is this something you could figure out in a day or so? 12:47 – Guest: If you have touched Docker then you can do it in a day; if never then not really. 13:02 – Guest: There might be some stones you will fall over. 13:39 – Panel: The part of the learning curve would be... 13:52 – Guest: The idea behind the container is that the container should be disposable. You could throw it away and then start a new one and it’s fresh and clean. Guest continues with his answer. 15:20 – Chuck: I have seen people do this with their database engine. If you need to upgrade your database then they grab their container... 15:55 – Guest: You don’t have to worry about setting it up - its provided in the container and... 16:09 – Chuck asks a question. 16:17 – Guest: For production, I would go with a hosted database like RJS, Azure, or other options. Guest continues. 17:13 – Chuck. 17:20 – Guest: If it dies then you need to... 17:30 – Chuck: We talked about an idea of these containers being something you can hand around in your development team. Chuck asks a question. 17:50 – Guest answers the question. He talks about tooling, containers, web frontend, and more. 18:48 – Guest asks Aimee a question: Are you using Compost? 18:50 – Aimee: I don’t know b/c that is a black box for us. I don’t know much about our Docker setup. 19:00 – Guest to Aimee: Can I ask you some questions? 19:14 – Guest is giving Aimee some hypothetical situations and asks what their process is like. 19:32 – Aimee answers the question. 20:11 – Guest: You have customizing tooling to be able to do x, y, and z. 20:25 – Aimee: They have hit a wall, but it’s frustrating. Our frontend and our backend are different. We are getting 500’s and it’s a black box for us. It’s the way that ops have it setup. I hate having to go to them for them to unblock us. 21:07 – Chuck: I have been hearing about Kubernetes. When will you start to see that it pays off to use it? 21:20 – Guest answers the question. 22:17 – If I have a simple app on a few different machines and front end and job servers I may not need Kubernetes. But if I have a lot of things that it depends on then I will need it? 22:35 – Guest: Yes. 22:40 – Chuck: What are the steps to using it? 22:45 – Guest: Step #1 you install it. The guest goes through the different steps to use Docker. 25:23 – Aimee: It makes sense that your UI and your database don’t live in the same container, but what about your API and your database should that be separate? 25:40 – Guest: Yes they should be separate. 26:09 – Chuck: What has your experience been with Docker – AJ or Chris? 26:17 – Panel: I have used a little bit at work and so far it’s been a black box for me. I like the IDEA of it, but I probably need to take Julian’s course to learn more about it! (Aimee agrees!) One thing I would love (from your perspective, Julian) – if I wanted to get started with this (and say I have not worked with containers before) where would I start? 28:22 – Advertisement – Sentry.io 29:20 – Guest: Good question. You don’t have to be an expert (to use Docker), but you have to be comfortable with the command line, though. 30:17 – Panel: Is there a dummy practice within your course? 30:27 – Julian: We run our own web server and... 30:44 – Panel: I need to check out your course! 31:04 – Guest: It is some time investment, but it’s saved me so much time already so it makes it really worth it. 31:38 – Panel: You are a version behind on Ruby. 31:46 – Guest: ...I just want to make code and not worry about that. 32:04 – Chuck: Updating your server – you would update Ruby and reinstall your gems and hope that they were all up-to-date. Now you don’t have to do it that way anymore. 32:37 – Guest: You know it will behave the same way. 32:48 – Guest: I have some experience with Docker. I understand its value. I guess I will share my frustrations. Not in Docker itself, but the fact that there is a need for Docker... 35:06 – Chuck. 35:12 – Panel: We need someone to come up with... 35:40 – Panel: It’s not standard JavaScript. 35:51 – Chuck: One question: How do you setup multiple stages of Docker? 36:12 – Guest: The recommended way is to have the same Docker file used in the development sate and through to production. So that way it’s the same image. 37:00 – Panel: ...you must do your entire configuration via the environmental variables. 37:29 – Chuck asks a question. 37:36 – Panel: If you are using Heroku or Circle CI...there is a page... 38:11 – Guest and Chuck go back-and-forth. 39:17 – Chuck: Gottcha. 39:18 – Guest. 39:52 – Chuck: I have seen systems that have hyberized things like using Chef Solo and... You do your basic setup then use Chef Solo – that doesn’t’ make sense to me. Have you seen people use this setup before? 40:20 – Guest: I guess I wouldn’t do it. 40:30 – Chuck. 40:36 – Guest: Only reason I would do that is that it works across many different platforms. If it makes your setup easier then go for it. 41:14 – Chuck: Docker Hub – I want to mention that. How robust is that? Can you put private images up there? 41:38 – Guest: You can go TOTALLY nuts with it. You could have private and public images. Also, your own version. Under the hood it’s called container registry. Yeah, you can change images, too. 42:22 – Chuck: Should I use container registry or a CI system to build the Docker system and use it somewhere else? 42:35 – Guest. 43:24 – Chuck: Where can people find your Docker course? 43:30 – Guest: LEARN DOCKER ONLINE! We are restructuring the prices. Make sure to check it out. 44:05 – Chuck: Picks! Where can people find you online? 44:14 – Guest: Twitter! eBook – Rails and Docker! Code Tails IO! Links: JavaScript jQuery React Elixir Elm Vue ESLint Node.js Circle CI Twitter – Circle CI Heroku Surge.sh Kubernetes.io Berg Design Rian Rietveld PickleJS Soft Cover.io Ebook – boilerplate EMx 010 Episode with Julian Fahrer Learn Docker Indie Hacker – Julian Fahrer LinkedIn – Julian Fahrer GitHub – Julian Fahrer Twitter – Julian Fahrer Sponsors: Kendo UI Sentry Cache Fly Picks: AJ Zermatt Resort Heber Area Aimee Surge.sh Chris BergDesign React, WP, and a11y gomakethings.com Joe Docker Videos by Dan Wahlin Rock Climbing/Indoor Rock Climbing Charles Extreme Ownership - Book Playing DND Julian PickleJS Postive Intelligence
Panel: Nader Dabit Lucas Reis Justin Bennett Special Guests: Carly Litchfield In this episode, the panelists talk with Carly Litchfield who is a Full-stack engineer of React and React Native. The panel and Carly talk about frontend and backend developing and the issues that teams could face day-in and day-out. Listen to today’s episode to hear about that and much more! Show Topics: 0:00 – Kendo UI 0:30 – Nader: Welcome! Our panel is Justin, Lucas, myself, and our guest is Carly. Welcome to the show! Thanks for joining us. Introduce yourself please. 0:56 – Carly: I am a fullstack engineer at a company called Zocdoc. I have been there for 4 years, and we use C# framework. 1:17 – Nader: C# interesting! 1:26 – Nader: You can do game development and other stuff. 1:33- Carly: I haven’t gotten into game development at all, just using C# for web development. 1:50 – Nader. 1:55 – Carly. 2:08 – Nader: The topic for today is: being a frontend developer and a team that is mostly focused on backend. Also, other topics with testing if we have time. How did you get into web development? 2:32 – Carly goes into detail about how she got into web development. 5:02 – Carly: I have worked with React Native, too. 5:22 – Nader: That is my favorite thing to work with (React Native). 5:27 – Panel: Everyone was learning about this new domain and this frontend domain. How was the knowledge spread? How was it spread throughout the company? 5:50 – Carly: One of the people someone that was on this 3 – person team (Thomas) and he went around to anyone who knew React. He made a lot of tooling. He made a lot of configuration libraries. You’d have your NPM integration like everyone else. It was cool to hook it into our servers. It was crucial to help with adoption. Those libraries aren’t being well maintained and it’s causing some pain. 7:32 – Panel: I remember this one case when I was working with an engineer and he was working on backend stuff. He was like I don’t understand here is JSS and JavaScript. Did you have those cultural differences? 8:27 – Carly: Yeah, definitely. You will see a thousand two-thousand lines that are written by us and it’s impossible to know how it hooks-up, etc. It’s painful to work with and some of the internal tooling nobody is updating. That served a forcing mechanism b/c we built tons of the frontend that it’s so complicated and we are paralyzed. That served us b/c frontend is hard and we just can’t go plopping around wherever we want. That’s how they tried to use Backbone. We never hired a specific frontend engineer. We just kept hiring backend to learn frontend. It’s harder to hire someone to avoid those mistakes. They will have to learn the hard way, where a Senior Developer can help. Even our Backbone apps were heavy and hard to work with. At that time we thought we were going to go to React. We thought we could hire someone with true frontend experience. We started an interview process and hard to get off the ground. We have gotten a lot better b/c we have Senior and Principle engineers to help. 12:12 – Panel: This isn’t easy and this is hard. Building UIs are extremely difficult. 13:06 – Carly: I have an old manager that posted a quote...that just shows how much things are changing. These are advanced strategies. On the backend you have all of these services and go to AWS. However, on the frontend the problems aren’t solved, yet. WE don’t have a perfect answer. A lot of the dynamics are interesting and the right answers are yet to be found. 14:32 – Panel: I think that in some ways, an application we are finding better ways with static websites and blogs through the WordPress model. We are finding practices to enable people to build intricate things. 15:07 – Panel: I used C++ in the beginning of my career. I use a framework called QT. QT is good to building native UIs, but it’s extremely complicated and difficult. And thinking about that from the idea of building not only a UI, but also...we are essentially using tools that aren’t supposed to be used in the way they were designed. 16:46 – Carly: I agree. When I was using style components at the beginning – after you do it for a while it’s not weird anymore. It’s great not to have to reuse things. I hear a lot of people concerned with these separations, but maybe they were 3 separate concerns. Maybe one component is one concern, if you will. 17:59 – Panel: I agree. If you look at the page model vs. the web model...you want a button to look like THAT button. You want them to look the same, it’s a component or an app. Maybe if you have a Wikipedia page where you have headers and sections, the CSS model makes sense on that particular domain, but with application it’s so complicated. I am a fan of cell components, and... Things are getting better. Another topic – we are in this frontend world and one big problem with the old days was reliability. You talked a lot about testing in the frontend. Let’s talk about testing in your professional life. 19:48 – Carly: I moved slowly into backend, and it’s comfortable that you knew you weren’t going to break anything. This testing stuff is great and I actually love it. We need to figure it out on the frontend, too. I built a bunch of tools that doctors use. We started thinking about what can we do to make the frontend more testable. 21:40 – Panel: I call that: Layer Oriented Design. 21:51 – Carly: When we were on Backbone we used this screen-shot testing framework. We obviously should be focusing on how we made this app rather than how do we test frontend code. But we did it. You could have a Backbone view... 22:43 – Advertisement – FRESH BOOKS! 23:47 – Nader: How would you change the pictures – were you running it through what? 24:02 – Carly: An array of pixel colors. 24:10 – Carly: It was cool! We called it Lena. We used it for a year or so and it caught some bugs and it did other things. We built Percy and Storybook. We are ahead of the game with that. In general that is what we have moved to instead. 25:30 – Panel: What is Percy? 25:37 – Carly: It will render your components, then it will grab...and every time you push code it will compare the old/new screenshot. You can do mobile stuff, too, which is awesome. 26:25 – Panel: When I saw the Percy tests – I thought: this makes a difference! 26:48 – Carly: How do you know if this random stuff matters? 27:15 – Panel: It makes a huge impact. Percy can give it to you and easier to review code that has visual changes. If you added a border and you can see all the red sea of change, so let’s use a border box, etc. It’s really mind-blowing! They have a GitHub hook. If there are changes people have to improve. 28:22 – Panel: You mentioned it supporting a bunch of different browsers? What sort of context does Percy run in? Does it have a specific execution...? 28:44 – Carly: Options in Firefox and Chrome so far. People at Percy talk about cross-browsers and it will have a pipeline. It’s really hard to do. Who knows if it will come but we will see. 29:13 – Panel: How do we ensure that things are continuing to work across the browsers? Did we render anything that is completely broke? How do you do testing across browsers? 29:44 – Carly: Yeah, we use Browser Stack. We run Selenium IO. 31:12 – Nader: It sounds like you have great tools on the frontend. Nader asks a question. 31:28 – Carly: We have a fairly broken-up frontend. If someone changes something... Running all of those tests can get crazy. 32:11 – Panel: Cypress... Why did you decide on Cypress – what has been your experience with that? 32:35 – Carly: I have not yet figured out a good debugging experience, and I don’t know how you guys are doing it? It’s impossible to debug and it’s not a pleasant experience. I saw Cypress’ advertisement and you can see the difference. They highlight the target, etc. I had to try it! In just a little app that I have – I tested it there. I thought it was awesome b/c it will show you where it failed, etc. I had to get everyone on board and tried to persuade my team to use it. I used these slides and presented it, and it worked fine. It didn’t flake at all. People had to work with the tests and work with Cypress to get the feel for it. Everyone decided to use it, too. 35:16 – Panel: The spread of knowledge and it goes back to the beginning. What is this secret group: Frontend Guild? 35:33 – Carly answers the question. 37:04 – Panel: How does knowledge spread happen in other companies? Such different companies and different scales – how does that happen? 37:23 – Panel: As your company grows, communication is definitely a hard thing to accomplish. At ARTSY we try to do different things. One of our principles is...we try to document everything that goes on. Document from a process-level, and other levels, too. We have working practice groups (like the Guild) we talk about frontend issues, and other topics. Lots of meetings and lunch and learns (show and tell). We bring in outsiders in to the company to share their information. 38:57 – Nader: At AWS we have Meetups that are internal and external. We have talks, too. Every week you can find a few dozen talks around AWS and/or Amazon. You can take an hour or two out of your day to check those out. We also have demo-days that can show people what they are working on. 40:06 – Panel: Demo-days sounds very exciting. 40:49 – Panel: Find out what motivates people and go from there. 40:57 – Panel: Security as a healthcare company there is a lot of regulations, paper, and you have to keep up with standards. Can you talk about that? 41:20 – Carly: Yes, GitHub has a great feature... 43:20 – Carly: A Web Package I saw recently, and it’s called NPM / audit resolve. 44:40 – Panel: That audit resolve was purchased by NPM. Yeah, we primarily use... 45:04 – Carly: This stuff was existing out there before, and now we know. 45:12 – Panel: There is s this cognitive load that is just sitting out there. Being aware of what licenses out use and the features that you aren’t actively investing in. Building something is more than just putting JavaScript on the page – there are more concerns. 46:19 – Panel. 46:25 – Panel: Building the product is just the tip of the iceberg. It’s all of the other things you have to do to make the delivery good. 46:49 – Carly: I agree – especially on the performance-side. 48:00 – Panel: I would like to talk about these topics now: Monitoring and CI. How do you set that up? 48:19 – Carly: We have these things called Bundlesize. 49:06 – Panel: What’s the name of the library called? 49:10 – Carly: Bundlesize, I think. 50:41 – Nader: That’s all the time I have for today and thanks for coming on the show, Carly! 51:12 – Panel: Wait! Picks! 51:23 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job Charles Max Wood’s Twitter Lenna Percy.io Percy – GitHub GitHub – Bundlesize NPM – Audit Resolver Meet Libby Backbone React – Blog The Selfish Gene Cypress.io Carly Litchfield LinkedIn Carly Litchfield Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Lucas App – Libby Carly Book: The Selfish Gene Justin TestCafé Create React 2.0
Panel: Dave Kimura Charles (Chuck) Max Wood Nate Hopkins Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Bozhidar Batsov who is the VP of Engineering at Toptal, and an Emacs fanatic. The panel and the guest talk about RubCop, Emacs, and Komodo, among other topics! Check out today’s episode for more details. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck lists the panelists and the special guest. 1:37 – Chuck: Why are you famous? 1:41 – Guest gives his background. 2:13 – Guest: I am passionate about Emacs. 2:55 – Chuck. 2:58 – Panel: I have on a few projects. Do you know RUFO? It’s a bit more opinionated than RuboCop. 3:25 – Guest: I am familiar with RUFO and their approach is similar to JavaScript called Pretty or something like that. 4:45 – Guest: 4:49 – Panel: Can you tell us what RuboCop is and why is it important? 5:00 – Guest: There are a few main things that RuboCop is: 1.) Placement for Ruby minor... 2.) Lint tool 3.) Automatic checker for all the best practices outlined in the community 4.) Formatter for Ruby code – you can feed it ugly code and it will spin out beautiful code 7:30 – Panel: What are the origins of the project? Where you interested in the performance and security aspects of it? 7:49 – Guest. The guest talks about RuboCop in detail. 10:59 – Panel: It’s important to remember that these are just guidelines and they are NOT set in stone. Using single or double quotes. As long as the project is consistent and using decent practices then I am okay with the code. I will disable the...in RuboCop. Today with high-resolution monitors it’s one of those things that are an annoyance to me. It’s just my opinion, though. 12:07 – Guest: Why disable it and not...? 13:36 – Panel: You could use VS code instead of Emacs! I am just kidding. 13:51 – Guest: I hope you are kidding! 13:56 – Chuck: I cannot live without this code... 14:06 – Guest. 14:26 – Panel: I was an early adapter from the beginning and it was hella slow. I tried it from sublime text and I got annoyed so I eventually switched to VS code. Once I got over the brand name, I really like it as my main editor. 15:20 – Panel: Maybe it’s more approachable and it’s easier to dip your toes in. 15:35 – Guest. 16:29 – Panel: I haven’t heard of KOMODO in long time. I remember that was one of the first IDs that I had checked out. I tried that then went to Ruby Mine and then tried Sublime text and then VS. 16:57 – Guest: Komodo was a famous editor. 17:17 – Panel: I am curious on RuboCop that the adaption is driven by teaching idiomatic Ruby to people new to the language? 17:40 – Guest: I don’t think it’s much about the stylistic stuff at this point. I also noticed that the main driver of the group was... Guest goes into great detail about this topic. 22:44 – Guest (continues): RuboCop offers a bunch of different structure. 24:27 – Guest (continues): We are wondering how to approach the issue of performance. The performance aspect tended to be trickier than what we had expected. The majority of developers when given the choice to either secure or make something convenient - they will choose the latter option. 25:47 – Panel: That’s why they get hit with a high AWS bill. 26:00 – Guest. 26:30 – Panel: The things you have learned with RuboCop, is it changing the direction with MRI or the design of the language at all? 26:40 – Guest: I would hope so, but I don’t have hard evidence to prove this. If you give people too many options then it could be a waste of time. I don’t care about the nuances. 30:06 – Ad: RubyMine! 30-day trial! 30:38 – Panel: Would you recommend the Rails style guide if you are building a Rails style project? Should we use that as a baseline and then customize it for your team? 30:55 – Guest: The style guide should be good. For a while I was the only editor. Not a lot of the options that are there aren’t my personal opinion, but it’s the general prescription. If you have strong preferences and you have your team agree on those then it’s okay to be modifying it. At the end of the day it’s better to have consistency within a project. You are doing great! 32:57 – Chuck asks a question. 33:44 – Chuck: Could I modify a rule? 33:53 – Guest: There are varying degrees to the rule. 35:56 – Panel: One of your conference talks you talked about the future of Rails and the future of other Ruby frameworks? 36:18 – Guest: I am worried about the future of Ruby b/c I see people talking about the maturity of the system but there isn’t a clear vision to where we are going. There are some cornerstones for Ruby 3 that he is repeating. 41:05 – Guest (continues): I think we need to commit to the module and the API. 45:42 – Chuck: All of those things make sense to me. Is there any desire for people to fork Ruby or pulling / putting some of this in? 46:00 – Guest. 48:18 – Panel: Transition that to Rails and the future of Rails? 48:27 – Panel: There are big companies that are making changes. 48:51 – Guest. 53:33 – Panel: I think that is a common pattern that most companies move towards. 54:12 – Chuck: We did an episode on ElixirMix with Chris McCord. Check that out! 54:35 – Chuck: Picks! 54:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Komodo Emacs RuboCop RuboCop – GitHub Stimulus reflex Messages: Share Screens Smittybilt Visual Studio Code: Introducing Visual Studio Live Share VRBO Bozhidar’s GitHub Bozhidar’s Twitter Bozhidar’s Patreon Bozhidar’s Open Collective Past EMx Episode 020 with Chris McCord! Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: Dave Tire Plugs VS Live Share Nate Share Screen using Messages on Mac Charles VRBO Find opportunities for R&R Rocket League Bozhidar Documentation for Markdown users Bear App
Panel: Dave Kimura Charles (Chuck) Max Wood Nate Hopkins Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Bozhidar Batsov who is the VP of Engineering at Toptal, and an Emacs fanatic. The panel and the guest talk about RubCop, Emacs, and Komodo, among other topics! Check out today’s episode for more details. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck lists the panelists and the special guest. 1:37 – Chuck: Why are you famous? 1:41 – Guest gives his background. 2:13 – Guest: I am passionate about Emacs. 2:55 – Chuck. 2:58 – Panel: I have on a few projects. Do you know RUFO? It’s a bit more opinionated than RuboCop. 3:25 – Guest: I am familiar with RUFO and their approach is similar to JavaScript called Pretty or something like that. 4:45 – Guest: 4:49 – Panel: Can you tell us what RuboCop is and why is it important? 5:00 – Guest: There are a few main things that RuboCop is: 1.) Placement for Ruby minor... 2.) Lint tool 3.) Automatic checker for all the best practices outlined in the community 4.) Formatter for Ruby code – you can feed it ugly code and it will spin out beautiful code 7:30 – Panel: What are the origins of the project? Where you interested in the performance and security aspects of it? 7:49 – Guest. The guest talks about RuboCop in detail. 10:59 – Panel: It’s important to remember that these are just guidelines and they are NOT set in stone. Using single or double quotes. As long as the project is consistent and using decent practices then I am okay with the code. I will disable the...in RuboCop. Today with high-resolution monitors it’s one of those things that are an annoyance to me. It’s just my opinion, though. 12:07 – Guest: Why disable it and not...? 13:36 – Panel: You could use VS code instead of Emacs! I am just kidding. 13:51 – Guest: I hope you are kidding! 13:56 – Chuck: I cannot live without this code... 14:06 – Guest. 14:26 – Panel: I was an early adapter from the beginning and it was hella slow. I tried it from sublime text and I got annoyed so I eventually switched to VS code. Once I got over the brand name, I really like it as my main editor. 15:20 – Panel: Maybe it’s more approachable and it’s easier to dip your toes in. 15:35 – Guest. 16:29 – Panel: I haven’t heard of KOMODO in long time. I remember that was one of the first IDs that I had checked out. I tried that then went to Ruby Mine and then tried Sublime text and then VS. 16:57 – Guest: Komodo was a famous editor. 17:17 – Panel: I am curious on RuboCop that the adaption is driven by teaching idiomatic Ruby to people new to the language? 17:40 – Guest: I don’t think it’s much about the stylistic stuff at this point. I also noticed that the main driver of the group was... Guest goes into great detail about this topic. 22:44 – Guest (continues): RuboCop offers a bunch of different structure. 24:27 – Guest (continues): We are wondering how to approach the issue of performance. The performance aspect tended to be trickier than what we had expected. The majority of developers when given the choice to either secure or make something convenient - they will choose the latter option. 25:47 – Panel: That’s why they get hit with a high AWS bill. 26:00 – Guest. 26:30 – Panel: The things you have learned with RuboCop, is it changing the direction with MRI or the design of the language at all? 26:40 – Guest: I would hope so, but I don’t have hard evidence to prove this. If you give people too many options then it could be a waste of time. I don’t care about the nuances. 30:06 – Ad: RubyMine! 30-day trial! 30:38 – Panel: Would you recommend the Rails style guide if you are building a Rails style project? Should we use that as a baseline and then customize it for your team? 30:55 – Guest: The style guide should be good. For a while I was the only editor. Not a lot of the options that are there aren’t my personal opinion, but it’s the general prescription. If you have strong preferences and you have your team agree on those then it’s okay to be modifying it. At the end of the day it’s better to have consistency within a project. You are doing great! 32:57 – Chuck asks a question. 33:44 – Chuck: Could I modify a rule? 33:53 – Guest: There are varying degrees to the rule. 35:56 – Panel: One of your conference talks you talked about the future of Rails and the future of other Ruby frameworks? 36:18 – Guest: I am worried about the future of Ruby b/c I see people talking about the maturity of the system but there isn’t a clear vision to where we are going. There are some cornerstones for Ruby 3 that he is repeating. 41:05 – Guest (continues): I think we need to commit to the module and the API. 45:42 – Chuck: All of those things make sense to me. Is there any desire for people to fork Ruby or pulling / putting some of this in? 46:00 – Guest. 48:18 – Panel: Transition that to Rails and the future of Rails? 48:27 – Panel: There are big companies that are making changes. 48:51 – Guest. 53:33 – Panel: I think that is a common pattern that most companies move towards. 54:12 – Chuck: We did an episode on ElixirMix with Chris McCord. Check that out! 54:35 – Chuck: Picks! 54:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Komodo Emacs RuboCop RuboCop – GitHub Stimulus reflex Messages: Share Screens Smittybilt Visual Studio Code: Introducing Visual Studio Live Share VRBO Bozhidar’s GitHub Bozhidar’s Twitter Bozhidar’s Patreon Bozhidar’s Open Collective Past EMx Episode 020 with Chris McCord! Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: Dave Tire Plugs VS Live Share Nate Share Screen using Messages on Mac Charles VRBO Find opportunities for R&R Rocket League Bozhidar Documentation for Markdown users Bear App
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: Dave Kimura Charles (Chuck) Max Wood Nate Hopkins Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Bozhidar Batsov who is the VP of Engineering at Toptal, and an Emacs fanatic. The panel and the guest talk about RubCop, Emacs, and Komodo, among other topics! Check out today’s episode for more details. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck lists the panelists and the special guest. 1:37 – Chuck: Why are you famous? 1:41 – Guest gives his background. 2:13 – Guest: I am passionate about Emacs. 2:55 – Chuck. 2:58 – Panel: I have on a few projects. Do you know RUFO? It’s a bit more opinionated than RuboCop. 3:25 – Guest: I am familiar with RUFO and their approach is similar to JavaScript called Pretty or something like that. 4:45 – Guest: 4:49 – Panel: Can you tell us what RuboCop is and why is it important? 5:00 – Guest: There are a few main things that RuboCop is: 1.) Placement for Ruby minor... 2.) Lint tool 3.) Automatic checker for all the best practices outlined in the community 4.) Formatter for Ruby code – you can feed it ugly code and it will spin out beautiful code 7:30 – Panel: What are the origins of the project? Where you interested in the performance and security aspects of it? 7:49 – Guest. The guest talks about RuboCop in detail. 10:59 – Panel: It’s important to remember that these are just guidelines and they are NOT set in stone. Using single or double quotes. As long as the project is consistent and using decent practices then I am okay with the code. I will disable the...in RuboCop. Today with high-resolution monitors it’s one of those things that are an annoyance to me. It’s just my opinion, though. 12:07 – Guest: Why disable it and not...? 13:36 – Panel: You could use VS code instead of Emacs! I am just kidding. 13:51 – Guest: I hope you are kidding! 13:56 – Chuck: I cannot live without this code... 14:06 – Guest. 14:26 – Panel: I was an early adapter from the beginning and it was hella slow. I tried it from sublime text and I got annoyed so I eventually switched to VS code. Once I got over the brand name, I really like it as my main editor. 15:20 – Panel: Maybe it’s more approachable and it’s easier to dip your toes in. 15:35 – Guest. 16:29 – Panel: I haven’t heard of KOMODO in long time. I remember that was one of the first IDs that I had checked out. I tried that then went to Ruby Mine and then tried Sublime text and then VS. 16:57 – Guest: Komodo was a famous editor. 17:17 – Panel: I am curious on RuboCop that the adaption is driven by teaching idiomatic Ruby to people new to the language? 17:40 – Guest: I don’t think it’s much about the stylistic stuff at this point. I also noticed that the main driver of the group was... Guest goes into great detail about this topic. 22:44 – Guest (continues): RuboCop offers a bunch of different structure. 24:27 – Guest (continues): We are wondering how to approach the issue of performance. The performance aspect tended to be trickier than what we had expected. The majority of developers when given the choice to either secure or make something convenient - they will choose the latter option. 25:47 – Panel: That’s why they get hit with a high AWS bill. 26:00 – Guest. 26:30 – Panel: The things you have learned with RuboCop, is it changing the direction with MRI or the design of the language at all? 26:40 – Guest: I would hope so, but I don’t have hard evidence to prove this. If you give people too many options then it could be a waste of time. I don’t care about the nuances. 30:06 – Ad: RubyMine! 30-day trial! 30:38 – Panel: Would you recommend the Rails style guide if you are building a Rails style project? Should we use that as a baseline and then customize it for your team? 30:55 – Guest: The style guide should be good. For a while I was the only editor. Not a lot of the options that are there aren’t my personal opinion, but it’s the general prescription. If you have strong preferences and you have your team agree on those then it’s okay to be modifying it. At the end of the day it’s better to have consistency within a project. You are doing great! 32:57 – Chuck asks a question. 33:44 – Chuck: Could I modify a rule? 33:53 – Guest: There are varying degrees to the rule. 35:56 – Panel: One of your conference talks you talked about the future of Rails and the future of other Ruby frameworks? 36:18 – Guest: I am worried about the future of Ruby b/c I see people talking about the maturity of the system but there isn’t a clear vision to where we are going. There are some cornerstones for Ruby 3 that he is repeating. 41:05 – Guest (continues): I think we need to commit to the module and the API. 45:42 – Chuck: All of those things make sense to me. Is there any desire for people to fork Ruby or pulling / putting some of this in? 46:00 – Guest. 48:18 – Panel: Transition that to Rails and the future of Rails? 48:27 – Panel: There are big companies that are making changes. 48:51 – Guest. 53:33 – Panel: I think that is a common pattern that most companies move towards. 54:12 – Chuck: We did an episode on ElixirMix with Chris McCord. Check that out! 54:35 – Chuck: Picks! 54:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Komodo Emacs RuboCop RuboCop – GitHub Stimulus reflex Messages: Share Screens Smittybilt Visual Studio Code: Introducing Visual Studio Live Share VRBO Bozhidar’s GitHub Bozhidar’s Twitter Bozhidar’s Patreon Bozhidar’s Open Collective Past EMx Episode 020 with Chris McCord! Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: Dave Tire Plugs VS Live Share Nate Share Screen using Messages on Mac Charles VRBO Find opportunities for R&R Rocket League Bozhidar Documentation for Markdown users Bear App
Panel: Nader Dabit Lucas Reis Justin Bennett Special Guests: Carly Litchfield In this episode, the panelists talk with Carly Litchfield who is a Full-stack engineer of React and React Native. The panel and Carly talk about frontend and backend developing and the issues that teams could face day-in and day-out. Listen to today’s episode to hear about that and much more! Show Topics: 0:00 – Kendo UI 0:30 – Nader: Welcome! Our panel is Justin, Lucas, myself, and our guest is Carly. Welcome to the show! Thanks for joining us. Introduce yourself please. 0:56 – Carly: I am a fullstack engineer at a company called Zocdoc. I have been there for 4 years, and we use C# framework. 1:17 – Nader: C# interesting! 1:26 – Nader: You can do game development and other stuff. 1:33- Carly: I haven’t gotten into game development at all, just using C# for web development. 1:50 – Nader. 1:55 – Carly. 2:08 – Nader: The topic for today is: being a frontend developer and a team that is mostly focused on backend. Also, other topics with testing if we have time. How did you get into web development? 2:32 – Carly goes into detail about how she got into web development. 5:02 – Carly: I have worked with React Native, too. 5:22 – Nader: That is my favorite thing to work with (React Native). 5:27 – Panel: Everyone was learning about this new domain and this frontend domain. How was the knowledge spread? How was it spread throughout the company? 5:50 – Carly: One of the people someone that was on this 3 – person team (Thomas) and he went around to anyone who knew React. He made a lot of tooling. He made a lot of configuration libraries. You’d have your NPM integration like everyone else. It was cool to hook it into our servers. It was crucial to help with adoption. Those libraries aren’t being well maintained and it’s causing some pain. 7:32 – Panel: I remember this one case when I was working with an engineer and he was working on backend stuff. He was like I don’t understand here is JSS and JavaScript. Did you have those cultural differences? 8:27 – Carly: Yeah, definitely. You will see a thousand two-thousand lines that are written by us and it’s impossible to know how it hooks-up, etc. It’s painful to work with and some of the internal tooling nobody is updating. That served a forcing mechanism b/c we built tons of the frontend that it’s so complicated and we are paralyzed. That served us b/c frontend is hard and we just can’t go plopping around wherever we want. That’s how they tried to use Backbone. We never hired a specific frontend engineer. We just kept hiring backend to learn frontend. It’s harder to hire someone to avoid those mistakes. They will have to learn the hard way, where a Senior Developer can help. Even our Backbone apps were heavy and hard to work with. At that time we thought we were going to go to React. We thought we could hire someone with true frontend experience. We started an interview process and hard to get off the ground. We have gotten a lot better b/c we have Senior and Principle engineers to help. 12:12 – Panel: This isn’t easy and this is hard. Building UIs are extremely difficult. 13:06 – Carly: I have an old manager that posted a quote...that just shows how much things are changing. These are advanced strategies. On the backend you have all of these services and go to AWS. However, on the frontend the problems aren’t solved, yet. WE don’t have a perfect answer. A lot of the dynamics are interesting and the right answers are yet to be found. 14:32 – Panel: I think that in some ways, an application we are finding better ways with static websites and blogs through the WordPress model. We are finding practices to enable people to build intricate things. 15:07 – Panel: I used C++ in the beginning of my career. I use a framework called QT. QT is good to building native UIs, but it’s extremely complicated and difficult. And thinking about that from the idea of building not only a UI, but also...we are essentially using tools that aren’t supposed to be used in the way they were designed. 16:46 – Carly: I agree. When I was using style components at the beginning – after you do it for a while it’s not weird anymore. It’s great not to have to reuse things. I hear a lot of people concerned with these separations, but maybe they were 3 separate concerns. Maybe one component is one concern, if you will. 17:59 – Panel: I agree. If you look at the page model vs. the web model...you want a button to look like THAT button. You want them to look the same, it’s a component or an app. Maybe if you have a Wikipedia page where you have headers and sections, the CSS model makes sense on that particular domain, but with application it’s so complicated. I am a fan of cell components, and... Things are getting better. Another topic – we are in this frontend world and one big problem with the old days was reliability. You talked a lot about testing in the frontend. Let’s talk about testing in your professional life. 19:48 – Carly: I moved slowly into backend, and it’s comfortable that you knew you weren’t going to break anything. This testing stuff is great and I actually love it. We need to figure it out on the frontend, too. I built a bunch of tools that doctors use. We started thinking about what can we do to make the frontend more testable. 21:40 – Panel: I call that: Layer Oriented Design. 21:51 – Carly: When we were on Backbone we used this screen-shot testing framework. We obviously should be focusing on how we made this app rather than how do we test frontend code. But we did it. You could have a Backbone view... 22:43 – Advertisement – FRESH BOOKS! 23:47 – Nader: How would you change the pictures – were you running it through what? 24:02 – Carly: An array of pixel colors. 24:10 – Carly: It was cool! We called it Lena. We used it for a year or so and it caught some bugs and it did other things. We built Percy and Storybook. We are ahead of the game with that. In general that is what we have moved to instead. 25:30 – Panel: What is Percy? 25:37 – Carly: It will render your components, then it will grab...and every time you push code it will compare the old/new screenshot. You can do mobile stuff, too, which is awesome. 26:25 – Panel: When I saw the Percy tests – I thought: this makes a difference! 26:48 – Carly: How do you know if this random stuff matters? 27:15 – Panel: It makes a huge impact. Percy can give it to you and easier to review code that has visual changes. If you added a border and you can see all the red sea of change, so let’s use a border box, etc. It’s really mind-blowing! They have a GitHub hook. If there are changes people have to improve. 28:22 – Panel: You mentioned it supporting a bunch of different browsers? What sort of context does Percy run in? Does it have a specific execution...? 28:44 – Carly: Options in Firefox and Chrome so far. People at Percy talk about cross-browsers and it will have a pipeline. It’s really hard to do. Who knows if it will come but we will see. 29:13 – Panel: How do we ensure that things are continuing to work across the browsers? Did we render anything that is completely broke? How do you do testing across browsers? 29:44 – Carly: Yeah, we use Browser Stack. We run Selenium IO. 31:12 – Nader: It sounds like you have great tools on the frontend. Nader asks a question. 31:28 – Carly: We have a fairly broken-up frontend. If someone changes something... Running all of those tests can get crazy. 32:11 – Panel: Cypress... Why did you decide on Cypress – what has been your experience with that? 32:35 – Carly: I have not yet figured out a good debugging experience, and I don’t know how you guys are doing it? It’s impossible to debug and it’s not a pleasant experience. I saw Cypress’ advertisement and you can see the difference. They highlight the target, etc. I had to try it! In just a little app that I have – I tested it there. I thought it was awesome b/c it will show you where it failed, etc. I had to get everyone on board and tried to persuade my team to use it. I used these slides and presented it, and it worked fine. It didn’t flake at all. People had to work with the tests and work with Cypress to get the feel for it. Everyone decided to use it, too. 35:16 – Panel: The spread of knowledge and it goes back to the beginning. What is this secret group: Frontend Guild? 35:33 – Carly answers the question. 37:04 – Panel: How does knowledge spread happen in other companies? Such different companies and different scales – how does that happen? 37:23 – Panel: As your company grows, communication is definitely a hard thing to accomplish. At ARTSY we try to do different things. One of our principles is...we try to document everything that goes on. Document from a process-level, and other levels, too. We have working practice groups (like the Guild) we talk about frontend issues, and other topics. Lots of meetings and lunch and learns (show and tell). We bring in outsiders in to the company to share their information. 38:57 – Nader: At AWS we have Meetups that are internal and external. We have talks, too. Every week you can find a few dozen talks around AWS and/or Amazon. You can take an hour or two out of your day to check those out. We also have demo-days that can show people what they are working on. 40:06 – Panel: Demo-days sounds very exciting. 40:49 – Panel: Find out what motivates people and go from there. 40:57 – Panel: Security as a healthcare company there is a lot of regulations, paper, and you have to keep up with standards. Can you talk about that? 41:20 – Carly: Yes, GitHub has a great feature... 43:20 – Carly: A Web Package I saw recently, and it’s called NPM / audit resolve. 44:40 – Panel: That audit resolve was purchased by NPM. Yeah, we primarily use... 45:04 – Carly: This stuff was existing out there before, and now we know. 45:12 – Panel: There is s this cognitive load that is just sitting out there. Being aware of what licenses out use and the features that you aren’t actively investing in. Building something is more than just putting JavaScript on the page – there are more concerns. 46:19 – Panel. 46:25 – Panel: Building the product is just the tip of the iceberg. It’s all of the other things you have to do to make the delivery good. 46:49 – Carly: I agree – especially on the performance-side. 48:00 – Panel: I would like to talk about these topics now: Monitoring and CI. How do you set that up? 48:19 – Carly: We have these things called Bundlesize. 49:06 – Panel: What’s the name of the library called? 49:10 – Carly: Bundlesize, I think. 50:41 – Nader: That’s all the time I have for today and thanks for coming on the show, Carly! 51:12 – Panel: Wait! Picks! 51:23 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job Charles Max Wood’s Twitter Lenna Percy.io Percy – GitHub GitHub – Bundlesize NPM – Audit Resolver Meet Libby Backbone React – Blog The Selfish Gene Cypress.io Carly Litchfield LinkedIn Carly Litchfield Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Lucas App – Libby Carly Book: The Selfish Gene Justin TestCafé Create React 2.0
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. Check out today’s episode to learn more! Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is Dan Mayer. Say “Hi”! 1:24 – Chuck: Give a brief introduction, please. 1:32 – Dan gives his background and what he currently is working on. 1:53 – Chuck: We wanted to talk to you about benchmarking and performance. Tell us how you got into this? 2:28 – Dan: It has been an interesting timeline for me. About seven years I worked for a large site that had a legacy Rails app. It got a lot of dusty corners over the years and we removed dead code, and removed bugs and confusion for the consumer. We were finding ways to tweak it and not impacting your users. I was using Trace Point but the overhead was quite significant. I moved away from that project but found that I found a need for it, again, a few years later. I actually tried to modify...and basically Eric said “prove that it is slow.” It really wasn’t the type of bottleneck that I was seeing. Since then I am rewriting it. I removed one bottleneck and now... 5:00 – Chuck: ...if that number gets smaller then Ruby is doing well. Is it really that simple? How do you benchmark? 5:15 – Dan answers the question. 6:40 – Panel: How do you benchmark things front to back? 6:49 – Dan: I look at benchmarking in different layers. You can see the overall impact in the broad range. If you want to see specific things then that’s a little trickier. For Ruby 3x3 he has been working on a Rails Benchmark, and that’s Noah. He has a sample Rails app and... 8:09 – Chuck: He is using discourse, and we talked to him on a past episode. 8:20 – Dan: My original plan was to insert my gem within that project. However, I ran into a few issues and Noah and I are working on that because of the issues. 8:57 – Panel: How does the coverband gem – how does it provide security so you don’t leak out information to in-users? 9:12 – Dan answers the question. 9:54 – Panel: Then you can build whatever views you want to trace back that sort of information? 10:02 – Dan answers the question. 10:30 – Chuck: Is it running benchmarks against every method you have in your app or what? 10:40 – Dan answers question. 11:27 – Panel: I like when I can remove all of the code I feel safe. 1:37 – Dan: The gem was driven by the fact that I love to delete code. These old files have been sitting around – they aren’t valid – let’s get rid of them. 12:04 – Chuck: This is off topic from benchmarking, but... 12:43 – Dan: ...to get that feature at run time it can hurt your performance. 15:20 – Panel: Is there added memory usage? 15:27 – Dan: I rewrote the library around coverage and I put it out. It worked well for my company and myself. But people were saying that they got a huge performance hit. I went from needing to sample to capture...the new bottleneck was collecting the data all of the code usage of your gems and...it went from just recording your custom code to all Ruby code. Where it was slowing down was reporting that. I didn’t have any benchmarks to capture that. What I was failing to do was... I can talk about what I did do to help people if you want? 17:41 – Chuck: Looking at how much storage is my app using or how much...How can you even begin to isolate it? 18:11 – Dan: On all the different types of benchmarking – I know there is a benchmarking memory increase. I haven’t benchmarked that, yet. To get at these different levels, how do we ensure that’s fast? It was a new challenge to me. 19:45 – Panel: It sounds like this has become a practice over the years. Is that how you handle it or how do you like to use it? 20:07 – Dan: When I started using this benchmarking is because I wanted to solve something. There were several regressions. We’d go back and address it. What I tried doing is put all the benchmarks into the gem. I think back by the Ruby 3x3 goals... 21:49 – Panel: What comes to mind is appreciating well-crafted software that really does well – maybe measure what customer output is? 22:43 – Dan: What people care about is their application. You can look to see... 23:33 – Panel: Automating takes that pressure right off of me and I can do 23:47 – Chuck: Recording all the things you want to do. We are talking about this right now you can record some of it in these tests or... 24:06 – Dan: I have fixed these performance things in the past. I have more confidence that these things get fixed before they get released. Having that methodology helps a lot. 24:43 – Advertisement – RubyMine 25:10 – Panel: I think it’s good to see WHERE your application is getting used the most. To see where you have the MOST code usage. 26:20 – Dan: That’s a good story on back on regressions on benchmarking or performances. 27:46 – Dan: One thing that I think is interesting – I believe the Rails performance testing has gone blank essentially. There are good articles but in the Rails 5 the guides no longer have any information. There is so much talk about performance and benchmarking but things have gotten lost, too. 28:28 – Panel: It’s interesting how we get into x, y, and z. We tend to figure it out and some guys focus on the next thing and the next. 29:24 – Dan: The fads of the things that go in-and-out. It’s definitely coming back: the performance in the Ruby world. My theory is that the tools have gotten that much better and people are doing less. They have offloaded a lot of things for people. It shows, though, it doesn’t do everything. 30:19 – Panel: I think that’s valuable, too. The WHOLE package – this is how we deliver, and these are the tools and the toolkits. I miss Ruby every time that I have to step away b/c I have to use something else. 31:17 – Dan: It sounds COOL to use Elixir and whatnot, but I just can’t get into it as much as when I use Ruby. When I try to branch out to use another language it isn’t the same. 31:47 – Panel: When the pressure is high I use Ruby so that’s where my heart is. 31:58 – Dan: It falls a little short, sometimes, it’s an easy thing that people say: it’s so slow. It’s one of those that we’d like to have a better answer. Is it something that people have thought of as a continual thing or...? 32:47 – Chuck: It’s generally to resolve an issue here or there. 32:57 – Panel. 33:07 – Chuck: When I do use the benchmarks I have added in my test suite a trip wire that validates that it’s under a certain point. 33:37 – Panel: If I did that my tests would never pass. 33:45 – Chuck. 33:49 – Dan: How can you do that reliably where you get the value but you don’t have a bunch of false failures? A person has to do it to see if it is faster/slower. 34:26 – Panel: For my applications – usually they are slow not b/c of Ruby but b/c of a poor architectural decision we have made. Every situation you can go and weight it to see what is best. Ultimately they are the ones that are brining in money into your business. 35:27 – Chuck: When I add things into my test suites is b/c there was some major performance hiccup where it ruins the user’s flow. 35:55 – Dan: The way you benchmark it... Benchmarking a gem or a library it’s how can it impact other people’s apps. And the Ruby 3x3 is proving that it’s faster – what does that mean – and I think Noah has done some great work on. 36:30 – Dan: The last thing I want to mention is Julia’s work on that is what got me back into coverband. I was thinking I would use a different version of coverband that would use RBSPY. 37:37 – Chuck: Yeah, that was a great episode. 37:44 – Dan: I want to play with it some more. I guess I would have to know more in Rust, though. 37:57 – Chuck: Anything that you are working on within this space? 38:04 – Dan: There have been 4-5 current people in coverband and we have added a bunch of new benchmarks and they are 60% faster. I am trying to work on getting a simpler version out there. Hopefully it will be live soon after getting rid of the bugs. 39:05 – Chuck: How can people find you? 39:10 – Dan: My blog, Twitter, and GitHub! 39:22 – Chuck: M-A-Y-E-R. 39:36 – Picks! 39:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Benchmark-IPS Rbspy Ruby Benchmarking Benchmarking Bugs Coverband TracePoint RR 362 Episode Rails Guides Atomic Habits EasyRes Skinny Pop Blog through AppSignal Book: Extreme Ownership Noah Gibbs’ Twitter Dan Mayer’s Blog Dan Mayer’s Twitter Dan Mayer’s GitHub Dan Mayer’s Medium Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: David Atomic Habits by James Clear Dave EasyRes Skinny Pop Charles Extreme Ownership Jocko Willink podcast 2 Keto Dudes Ketogenic Forums Dan Artemis https://blog.appsignal.com/2018/09/28/active-record-vs-ecto.html https://github.com/evanphx/benchmark-ips https://github.com/rbspy/rbspy
Panel: Joe Eames Chris Fritz Divya Sasidharan Special Guest: Guillaume Chau In this episode, the panel talks with Guillaume Chau who is apart of the VueJS core team, a frontend engineer at Livestorm, and an open source contributor. The guest and the panelists talk about plugins, Webpack, Vue CLI, and much more! Check out today’s episode to hear all of the details. Show Topics: 0:00 – Advertisement – Kendo UI 1:00 – Chris lists who is on the panel along with today’s guest. Chris: Who are you and what are you working on? 1:50 – Guest: I am working on a startup in Paris. I am calling in from Lyon, France. 2:12 – Panel: Late there? 2:15 – Panel: Almost time for dinner? 2:21 – Guest: Yes, it’s cooking now! 2:26 – Panel asks a question. 2:43 – Guest answers the question. 3:14 – Panel: Anyone who didn’t want to be an expert, they don’t’ have to worry about how things tie together – you could help them with their configurations? 3:36 – Guest: A lot of the work is done for you with the configurations so you can start writing your apps. 3:53 – Panel: How is 3 different from 2? 4:06 – Guest: It’s like a new tool entirely. It’s working very different, too, with a different system. It has a different template base. 5:53 – Panel: To combine templates you have to understand it well, like different Webpacks. 6:12 – Guest: Regarding Webpacks and their configurations... 6:52 – Panel: With the template situation there was an issue where they would make their project and as new versions of Webpack came out...and new versions of Babble, and they will have to manage the dependencies of all of these. There might be some plugins that only work with x, y, and z. IT can be frustrating – can version 3 take care of this for you? 7:44 – Guest answers the question. 9:24 – Panel: How do you update plugins? 9:29 – Guest. 10:26 – Panel: Upgrade your plugins then as long as all of your plugins are the same version it’s okay? 10:34 – Guest: Yes. You can upgrade your... 11:38 – Chris: Divya, you just gave a talk (London) on...plugins, right? 11:50 – Divya: Yes. We talked about Webpack configurations. For example, if there are some testing libraries you can essentially setup a UCLI plugin to create a test – create a test folder – plugins let you generate files or folders (structure your project in a certain way). In London I talked about server less functions with... 13:30 – Panel: Any kind of pattern you want to use in different applications you can wrap that up in a plugin? 13:42 – Divya: Yes. Exactly. Instead of repeating yourself you can wrap it up. It’s really handy. 14:00 – Panel asks a question. 14:02 – Divya: You could do that... 14:10 – Panel: ...or a graph QL – Yes! 14:20 – Guest. 14:33 – Chris: Any thing that third-party plugins don’t have access to? 14:43 – Guest. 14:54 – Chris. 15:08 – Guest. 15:25 – Divya: ...if you want a UCLI service...and so you can grab those commands and add-on those commands and using those default commands. You have access to those commands, so you don’t always... 17:02 – Chris: Like deploy? 17:11 – Divya: Yes. 17:17 – Guest. 17:19 – Divya. Divya: Do you have strategies on how you go about testing your plugins? 17:35 – Guest: Yes, I do. 19:23 – Panel: So this is like end-to-end test for a CLI tool? 19:33 – Guest. 19:50 – Panel: Is there documentation for all of this? 19:59 – Guest. 20:14 – Divya: I think the way I’ve done tests is to edit an example a test project as a local dependency and then seeing that it works. I want to make sure that it works. Divya: And the other way I’ve done it is VUE CLI it is undocumented at the moment. You can test your CLI plugin from within the plugin itself. 21:55 – Guest: I’ve used some of those before. 22:08 – Chris: Speaking of the UI that is something I’d love to talk about. It seems unique to me – a CLI tool that has a UI that is built along with it. That seems strange to some people – how does that work and WHY would you need it? 22:42 – Guest: I’ll start with the WHY. It is way more powerful and as a greeter the API interface is more fixable so you can choose different options. For example when you create a project you can set different things. You basically have to name the project and you have simple options to choose form. Now it’s basically a really fixable system with plugins and stuff like that. I thought it would be nice to free it from the terminal. The best way to do that was creating a graphical interface. The main advantage of this was that you could add more information and explanations to what is going on. You can also create better interface. Guest: Also, it currently improves discoverability. 25:30 – Chris: You could do a search in the UI and type in the name of something you are working with and then your plugin would show up in the list – and then it would just be added to their project. That’s nice so they don’t have to go to the NPM or doing the README. 26:07 – Guest. 26:14 – Divya: I think it’s nice b/c I have used it extensively for my plugin. I want to see what hasn’t been taken already. I have a way of organizing my modules and I’ve used to it see what names have already been taken? 26:47 – Guest: I think sometimes... 27:15 – Divya: The feature that you are able to run tasks from the UI is nice. 27:55 – Chris: It sounds like it offers a nicer way to view a lot of things. One of the other advantages (that I found) is that I have a configuration to the listing rules to Vue – you can pick the exact rule set that you want to use. Normally when you look at a configuration file, you don’t know what rule sets are available, you don’t know what options are available. All of this you have to look at documentation. You can see descriptions of what each rule does. You can do so much in the UI. 29:19 – Guest. 29:40 – Advertisement – Get A Coder Job! 30:25 – Chris: Do they still need a terminal? 30:35 – Guest. 32:41 – Chris: That would be cool! 32:46 – Guest. 33:09 – Chris: They still need a little terminal knowledge right? 33:15 – Guest: Yes. 33:33 – Chris: They need a little terminal knowledge, they need to install the package, then they need to run VUE UI, then they can do anything from the terminal inside of the UI? 33:55 – Guest: You can create and import existing projects. 34:28 – Panel. 34:33 – Chris. 34:36 – Panel: It’s already active? 34:43 – Guest: I would like to talk about what I did in London. That conference I talked about... 37:00 – Panel. 37:07 – Guest. 37:20 – Panel: Nice! 37:25 – Guest. Guest: All of these widgets that I talked about you can use the product API and do anything that you want. 38:47 – Chris: If someone wants to see the dashboard that you are doing – where can they see that stuff? 39:00 – Guest: GitHub. Follow the manuscript instructions. 39:16 – Chris: Your London talk was recorded? 39:22 – Guest: Yes. 39:27 – Guest. 39:38 – Divya: Are you planning on giving this talk in other events? 39:47 – Guest: Maybe not anytime soon. 39:56 – Chris. 40:00 – Divya. 40:09 – Guest: It might be release already we don’t know. 40:15 – Divya: A date you would like to release by? 40:25 – Chris: Where can people support you and your work? 40:35 – Guest: Yes, they definitely can. You can check out the GitHub file. Also, check-out my open source work, too. 41:17 – Chris: Twitter? 41:19 – Guest: Yes. 41:24 – Chris: You have cute cat pictures, too. Let’s go to Picks!! 41:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue VUE CLI 3 Vue CLI – NPM React Angular JavaScript DevChat TV Article: Infrequently Noted Vue.js Fundamentals GetKap Snipcart Netlify Webpack.js Guillaume Chau’s Vue.JS LONDON Guillaume Chau’s Twitter Guillaume Chau’s LinkedIn Guillaume Chau’s GitHub Guillaume Chau’s GitHub Repositories Guillaume Chau’s ABOUT in Patreon.com Guillaume Chau’s Medium Guillaume Chau’s Info Divya’s London Talk Webpack – Configurations Graph QL Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe VueJS Fundamentals Developer Experience Bait and Switch Divya Get Kap Snipcart How we built a Due CLI Plugin for Netlify Lambda Chris Meditation Gratefulness Guillaume Exercise The Expanse
Panel: Aimee Knight AJ O’Neal Aaron Frost Christopher Ferdinandi Special Guests: Christopher Buecheler In this episode, the panel talks with Christopher Buecheler who is an author, blogger, web developer, and founder of CloseBrace. The panel and Christopher talk about stepping outside of your comfort zone. With a technological world that is ever changing, it is important to always be learning within your field. Check out today’s episode to learn more! Show Topics: 0:00 – Advertisement: KENDO UI 1:08 – Aimee: Our guest is Christopher Buecheler – tell us about yourself and what you do. 1:22 – Guest: I run a site and help mid-career developers. I put out a weekly newsletter, too. 2:01 – Aimee: It says that you are a fan of “getting comfortable being uncomfortable”? 2:15 – Guest: I am a self-taught developer, so that means I am scrambling to learn new things all the time. You are often faced with learning new things. When I learned React I was dumped into it. The pain and the difficulty are necessary in order to improve. If you aren’t having that experience then you aren’t learning as much as you could be. 3:26 – Aimee: I borrow lessons that I learned from ice-skating to programming. 3:49 – Guest: I started running a few years ago for better health. It was exhausting and miserable at the start and wondered why I was doing it. Now I run 5 times a week, and there is always a level of being uncomfortable, but now it’s apart of the run. It’s an interesting comparison to coding. It’s this idea of pushing through. 5:01 – Aimee: If you are comfortable you probably aren’t growing that much. In our industry you always have to be learning because things change so much! 5:25 – Guest: Yes, exactly. If you are not careful you can miss opportunities. 6:33 – Panel: You have some ideas about frameworks and libraries – one thing that I am always anxious about is being able to make sense of “what are some new trends that I should pay attention to?” I remember interviewing with someone saying: this mobile thing is just a fad. I remember thinking that she is going to miss this opportunity. I am worried that I am going to be THAT guy. How do you figure out what sort of things you should / shouldn’t pay attention to? 7:47 – Guest: It is a super exhausting thing to keep up with – I agree. For me, a lot of what I pay attention to is the technology that has the backing of a multi-million dollar company then that shows that technology isn’t going anywhere, anytime soon. The other thing I would look at is how ACTIVE is the community around it? 9:15 – Panel: Is there a strategic way to approach this? There is so many different directions that you can grow and push yourself within your career? Do you have any kinds of thoughts/tips on how you want your career to evolve? 10:00 – Guest: I am trying to always communicate better to my newsletter audience. Also, a good approach, too, is what are people hiring for? 11:06 – Aimee: Again, I would say: focus on learning. 11:30 – Panel: And I agree with Aimee – “learn it and learn it well!” 12:01 – Panel: I want to ask Chris – what is CloseBrace? 12:17 – Guest: I founded it in November 2016, and started work on it back in 2013. 14:20 – Panel: It was filled with a bunch of buzz worthy words/title. 14:32 – Guest continues his thoughts/comments on CloseBrace. 16:54 – Panel: How is the growth going? 17:00 – Guest: It is growing very well. I put out a massive, massive tutorial course – I wouldn’t necessarily advice that people do this b/c it can be overwhelming. However, growth this year I have focused on marketing. I haven’t shared numbers or anything but it’s increased 500%, and I am happy about it. 18:05 – Panel: Are you keeping in-house? 18:13 – Guest: I think it would be cool to expand, but now it is in-house. I don’t want to borrow Egg Head’s setup. I would love to cover MORE topics, though. 19:05 – Panel: You are only one person. 19:08 – Guest: If I can get the site creating more revenue than I can hire someone to do video editing, etc. 19:35 – Panel: I think you are overthinking it. 19:45 – Guest. 19:47 – Advertisement – Sentry.io 20:47 – Guest. 21:30 – Aimee: There are SO many resources out there right now. Where do you think you fit into this landscape? 21:44 – The landscape is cluttered, but I feel that I am different b/c of my thoroughness. I don’t always explain line by line, but I do say how and why things work. I think also is my VOICE. Not my radio voice, but the tone and the approach you take with it. 23:25 – Panel: I was trying to copy folks in the beginning of my career. And at some point I realized that I needed to find my own style. It always came down to the reasons WHY I am different rather than the similarities. Like, Chris, you have these quick hits on CloseBrace, but some people might feel like they don’t have the time to get through ALL of your content, because it’s a lot. For me, that’s what I love about your content. 24:46 – Christopher: Yeah, it was intentional. 25:36 – Panel: Good for you. 25:49 – Guest: I am super device agnostic: Android, Mac, PC, etc. I have a lot of people from India that are more Microsoft-base. 26:28 – Aimee: I think Egghead is pretty good about this...do you cover testing at all with these things that you are doing? It’s good to do a “Hello World” but most of these sites don’t get into MORE complex pieces. I think that’s where you can get into trouble. It’s nice to have some boiler point testing, too. 27:18 – Guest answers Aimee’s question. 28:43 – Aimee: We work with a consultancy and I asked them to write tests for the things that we work with. That’s the value of the testing. It’s the code that comes out. 29:10 – Panel: Can you explain this to me. Why do I need to write tests? It’s always working (my code) so why do I have to write a test? 29:39 – Guest: When working with AWS I was writing... 31:01 – Aimee: My biggest thing is that I have seen enough that the people don’t value testing are in a very bad place, and the people that value testing are in a good place. It even comes back to the customers, because the code gets so hard that you end up repeatedly releasing bugs. Customers will stop paying their bills if this happens too often for them. 33:00 – Panel: Aimee / Chris do you have a preferred tool? I have done testing before, but not as much as I should be doing. 33:25 – Aimee: I like JEST and PUPPETEER. 33:58 – Guest: I like JEST, too. 34:20 – Aimee: Let’s go to PICKS! 34:35 – Advertisement – eBook: Get a coder job! Links: JavaScript jQuery React Elixir Elm Vue JEST Puppeteer Podflix Autojump Brutalist Web Design YouTube: Mac Miller Balloon Fiesta DocZ CloseBrace Christopher Buecheler’s Website Christopher Buecheler’s LinkedIn Christopher Buecheler’s GitHub Go Learn Things – Chris Ferdinandi Sponsors: Kendo UI Sentry Cache Fly Get a Coder Job Picks: Aimee Podflix Chris F. AutoJump Brutalist Web Design Mac Miller Tiny Desk Concert AJ Canada Dry with Lemonade Aaron ABQ Ballon Festival Joe Eames DND Recording Channel Christopher Docz South Reach Trilogy Jeff Vandermeer
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. Check out today’s episode to learn more! Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is Dan Mayer. Say “Hi”! 1:24 – Chuck: Give a brief introduction, please. 1:32 – Dan gives his background and what he currently is working on. 1:53 – Chuck: We wanted to talk to you about benchmarking and performance. Tell us how you got into this? 2:28 – Dan: It has been an interesting timeline for me. About seven years I worked for a large site that had a legacy Rails app. It got a lot of dusty corners over the years and we removed dead code, and removed bugs and confusion for the consumer. We were finding ways to tweak it and not impacting your users. I was using Trace Point but the overhead was quite significant. I moved away from that project but found that I found a need for it, again, a few years later. I actually tried to modify...and basically Eric said “prove that it is slow.” It really wasn’t the type of bottleneck that I was seeing. Since then I am rewriting it. I removed one bottleneck and now... 5:00 – Chuck: ...if that number gets smaller then Ruby is doing well. Is it really that simple? How do you benchmark? 5:15 – Dan answers the question. 6:40 – Panel: How do you benchmark things front to back? 6:49 – Dan: I look at benchmarking in different layers. You can see the overall impact in the broad range. If you want to see specific things then that’s a little trickier. For Ruby 3x3 he has been working on a Rails Benchmark, and that’s Noah. He has a sample Rails app and... 8:09 – Chuck: He is using discourse, and we talked to him on a past episode. 8:20 – Dan: My original plan was to insert my gem within that project. However, I ran into a few issues and Noah and I are working on that because of the issues. 8:57 – Panel: How does the coverband gem – how does it provide security so you don’t leak out information to in-users? 9:12 – Dan answers the question. 9:54 – Panel: Then you can build whatever views you want to trace back that sort of information? 10:02 – Dan answers the question. 10:30 – Chuck: Is it running benchmarks against every method you have in your app or what? 10:40 – Dan answers question. 11:27 – Panel: I like when I can remove all of the code I feel safe. 1:37 – Dan: The gem was driven by the fact that I love to delete code. These old files have been sitting around – they aren’t valid – let’s get rid of them. 12:04 – Chuck: This is off topic from benchmarking, but... 12:43 – Dan: ...to get that feature at run time it can hurt your performance. 15:20 – Panel: Is there added memory usage? 15:27 – Dan: I rewrote the library around coverage and I put it out. It worked well for my company and myself. But people were saying that they got a huge performance hit. I went from needing to sample to capture...the new bottleneck was collecting the data all of the code usage of your gems and...it went from just recording your custom code to all Ruby code. Where it was slowing down was reporting that. I didn’t have any benchmarks to capture that. What I was failing to do was... I can talk about what I did do to help people if you want? 17:41 – Chuck: Looking at how much storage is my app using or how much...How can you even begin to isolate it? 18:11 – Dan: On all the different types of benchmarking – I know there is a benchmarking memory increase. I haven’t benchmarked that, yet. To get at these different levels, how do we ensure that’s fast? It was a new challenge to me. 19:45 – Panel: It sounds like this has become a practice over the years. Is that how you handle it or how do you like to use it? 20:07 – Dan: When I started using this benchmarking is because I wanted to solve something. There were several regressions. We’d go back and address it. What I tried doing is put all the benchmarks into the gem. I think back by the Ruby 3x3 goals... 21:49 – Panel: What comes to mind is appreciating well-crafted software that really does well – maybe measure what customer output is? 22:43 – Dan: What people care about is their application. You can look to see... 23:33 – Panel: Automating takes that pressure right off of me and I can do 23:47 – Chuck: Recording all the things you want to do. We are talking about this right now you can record some of it in these tests or... 24:06 – Dan: I have fixed these performance things in the past. I have more confidence that these things get fixed before they get released. Having that methodology helps a lot. 24:43 – Advertisement – RubyMine 25:10 – Panel: I think it’s good to see WHERE your application is getting used the most. To see where you have the MOST code usage. 26:20 – Dan: That’s a good story on back on regressions on benchmarking or performances. 27:46 – Dan: One thing that I think is interesting – I believe the Rails performance testing has gone blank essentially. There are good articles but in the Rails 5 the guides no longer have any information. There is so much talk about performance and benchmarking but things have gotten lost, too. 28:28 – Panel: It’s interesting how we get into x, y, and z. We tend to figure it out and some guys focus on the next thing and the next. 29:24 – Dan: The fads of the things that go in-and-out. It’s definitely coming back: the performance in the Ruby world. My theory is that the tools have gotten that much better and people are doing less. They have offloaded a lot of things for people. It shows, though, it doesn’t do everything. 30:19 – Panel: I think that’s valuable, too. The WHOLE package – this is how we deliver, and these are the tools and the toolkits. I miss Ruby every time that I have to step away b/c I have to use something else. 31:17 – Dan: It sounds COOL to use Elixir and whatnot, but I just can’t get into it as much as when I use Ruby. When I try to branch out to use another language it isn’t the same. 31:47 – Panel: When the pressure is high I use Ruby so that’s where my heart is. 31:58 – Dan: It falls a little short, sometimes, it’s an easy thing that people say: it’s so slow. It’s one of those that we’d like to have a better answer. Is it something that people have thought of as a continual thing or...? 32:47 – Chuck: It’s generally to resolve an issue here or there. 32:57 – Panel. 33:07 – Chuck: When I do use the benchmarks I have added in my test suite a trip wire that validates that it’s under a certain point. 33:37 – Panel: If I did that my tests would never pass. 33:45 – Chuck. 33:49 – Dan: How can you do that reliably where you get the value but you don’t have a bunch of false failures? A person has to do it to see if it is faster/slower. 34:26 – Panel: For my applications – usually they are slow not b/c of Ruby but b/c of a poor architectural decision we have made. Every situation you can go and weight it to see what is best. Ultimately they are the ones that are brining in money into your business. 35:27 – Chuck: When I add things into my test suites is b/c there was some major performance hiccup where it ruins the user’s flow. 35:55 – Dan: The way you benchmark it... Benchmarking a gem or a library it’s how can it impact other people’s apps. And the Ruby 3x3 is proving that it’s faster – what does that mean – and I think Noah has done some great work on. 36:30 – Dan: The last thing I want to mention is Julia’s work on that is what got me back into coverband. I was thinking I would use a different version of coverband that would use RBSPY. 37:37 – Chuck: Yeah, that was a great episode. 37:44 – Dan: I want to play with it some more. I guess I would have to know more in Rust, though. 37:57 – Chuck: Anything that you are working on within this space? 38:04 – Dan: There have been 4-5 current people in coverband and we have added a bunch of new benchmarks and they are 60% faster. I am trying to work on getting a simpler version out there. Hopefully it will be live soon after getting rid of the bugs. 39:05 – Chuck: How can people find you? 39:10 – Dan: My blog, Twitter, and GitHub! 39:22 – Chuck: M-A-Y-E-R. 39:36 – Picks! 39:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Benchmark-IPS Rbspy Ruby Benchmarking Benchmarking Bugs Coverband TracePoint RR 362 Episode Rails Guides Atomic Habits EasyRes Skinny Pop Blog through AppSignal Book: Extreme Ownership Noah Gibbs’ Twitter Dan Mayer’s Blog Dan Mayer’s Twitter Dan Mayer’s GitHub Dan Mayer’s Medium Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: David Atomic Habits by James Clear Dave EasyRes Skinny Pop Charles Extreme Ownership Jocko Willink podcast 2 Keto Dudes Ketogenic Forums Dan Artemis https://blog.appsignal.com/2018/09/28/active-record-vs-ecto.html https://github.com/evanphx/benchmark-ips https://github.com/rbspy/rbspy
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. Check out today’s episode to learn more! Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is Dan Mayer. Say “Hi”! 1:24 – Chuck: Give a brief introduction, please. 1:32 – Dan gives his background and what he currently is working on. 1:53 – Chuck: We wanted to talk to you about benchmarking and performance. Tell us how you got into this? 2:28 – Dan: It has been an interesting timeline for me. About seven years I worked for a large site that had a legacy Rails app. It got a lot of dusty corners over the years and we removed dead code, and removed bugs and confusion for the consumer. We were finding ways to tweak it and not impacting your users. I was using Trace Point but the overhead was quite significant. I moved away from that project but found that I found a need for it, again, a few years later. I actually tried to modify...and basically Eric said “prove that it is slow.” It really wasn’t the type of bottleneck that I was seeing. Since then I am rewriting it. I removed one bottleneck and now... 5:00 – Chuck: ...if that number gets smaller then Ruby is doing well. Is it really that simple? How do you benchmark? 5:15 – Dan answers the question. 6:40 – Panel: How do you benchmark things front to back? 6:49 – Dan: I look at benchmarking in different layers. You can see the overall impact in the broad range. If you want to see specific things then that’s a little trickier. For Ruby 3x3 he has been working on a Rails Benchmark, and that’s Noah. He has a sample Rails app and... 8:09 – Chuck: He is using discourse, and we talked to him on a past episode. 8:20 – Dan: My original plan was to insert my gem within that project. However, I ran into a few issues and Noah and I are working on that because of the issues. 8:57 – Panel: How does the coverband gem – how does it provide security so you don’t leak out information to in-users? 9:12 – Dan answers the question. 9:54 – Panel: Then you can build whatever views you want to trace back that sort of information? 10:02 – Dan answers the question. 10:30 – Chuck: Is it running benchmarks against every method you have in your app or what? 10:40 – Dan answers question. 11:27 – Panel: I like when I can remove all of the code I feel safe. 1:37 – Dan: The gem was driven by the fact that I love to delete code. These old files have been sitting around – they aren’t valid – let’s get rid of them. 12:04 – Chuck: This is off topic from benchmarking, but... 12:43 – Dan: ...to get that feature at run time it can hurt your performance. 15:20 – Panel: Is there added memory usage? 15:27 – Dan: I rewrote the library around coverage and I put it out. It worked well for my company and myself. But people were saying that they got a huge performance hit. I went from needing to sample to capture...the new bottleneck was collecting the data all of the code usage of your gems and...it went from just recording your custom code to all Ruby code. Where it was slowing down was reporting that. I didn’t have any benchmarks to capture that. What I was failing to do was... I can talk about what I did do to help people if you want? 17:41 – Chuck: Looking at how much storage is my app using or how much...How can you even begin to isolate it? 18:11 – Dan: On all the different types of benchmarking – I know there is a benchmarking memory increase. I haven’t benchmarked that, yet. To get at these different levels, how do we ensure that’s fast? It was a new challenge to me. 19:45 – Panel: It sounds like this has become a practice over the years. Is that how you handle it or how do you like to use it? 20:07 – Dan: When I started using this benchmarking is because I wanted to solve something. There were several regressions. We’d go back and address it. What I tried doing is put all the benchmarks into the gem. I think back by the Ruby 3x3 goals... 21:49 – Panel: What comes to mind is appreciating well-crafted software that really does well – maybe measure what customer output is? 22:43 – Dan: What people care about is their application. You can look to see... 23:33 – Panel: Automating takes that pressure right off of me and I can do 23:47 – Chuck: Recording all the things you want to do. We are talking about this right now you can record some of it in these tests or... 24:06 – Dan: I have fixed these performance things in the past. I have more confidence that these things get fixed before they get released. Having that methodology helps a lot. 24:43 – Advertisement – RubyMine 25:10 – Panel: I think it’s good to see WHERE your application is getting used the most. To see where you have the MOST code usage. 26:20 – Dan: That’s a good story on back on regressions on benchmarking or performances. 27:46 – Dan: One thing that I think is interesting – I believe the Rails performance testing has gone blank essentially. There are good articles but in the Rails 5 the guides no longer have any information. There is so much talk about performance and benchmarking but things have gotten lost, too. 28:28 – Panel: It’s interesting how we get into x, y, and z. We tend to figure it out and some guys focus on the next thing and the next. 29:24 – Dan: The fads of the things that go in-and-out. It’s definitely coming back: the performance in the Ruby world. My theory is that the tools have gotten that much better and people are doing less. They have offloaded a lot of things for people. It shows, though, it doesn’t do everything. 30:19 – Panel: I think that’s valuable, too. The WHOLE package – this is how we deliver, and these are the tools and the toolkits. I miss Ruby every time that I have to step away b/c I have to use something else. 31:17 – Dan: It sounds COOL to use Elixir and whatnot, but I just can’t get into it as much as when I use Ruby. When I try to branch out to use another language it isn’t the same. 31:47 – Panel: When the pressure is high I use Ruby so that’s where my heart is. 31:58 – Dan: It falls a little short, sometimes, it’s an easy thing that people say: it’s so slow. It’s one of those that we’d like to have a better answer. Is it something that people have thought of as a continual thing or...? 32:47 – Chuck: It’s generally to resolve an issue here or there. 32:57 – Panel. 33:07 – Chuck: When I do use the benchmarks I have added in my test suite a trip wire that validates that it’s under a certain point. 33:37 – Panel: If I did that my tests would never pass. 33:45 – Chuck. 33:49 – Dan: How can you do that reliably where you get the value but you don’t have a bunch of false failures? A person has to do it to see if it is faster/slower. 34:26 – Panel: For my applications – usually they are slow not b/c of Ruby but b/c of a poor architectural decision we have made. Every situation you can go and weight it to see what is best. Ultimately they are the ones that are brining in money into your business. 35:27 – Chuck: When I add things into my test suites is b/c there was some major performance hiccup where it ruins the user’s flow. 35:55 – Dan: The way you benchmark it... Benchmarking a gem or a library it’s how can it impact other people’s apps. And the Ruby 3x3 is proving that it’s faster – what does that mean – and I think Noah has done some great work on. 36:30 – Dan: The last thing I want to mention is Julia’s work on that is what got me back into coverband. I was thinking I would use a different version of coverband that would use RBSPY. 37:37 – Chuck: Yeah, that was a great episode. 37:44 – Dan: I want to play with it some more. I guess I would have to know more in Rust, though. 37:57 – Chuck: Anything that you are working on within this space? 38:04 – Dan: There have been 4-5 current people in coverband and we have added a bunch of new benchmarks and they are 60% faster. I am trying to work on getting a simpler version out there. Hopefully it will be live soon after getting rid of the bugs. 39:05 – Chuck: How can people find you? 39:10 – Dan: My blog, Twitter, and GitHub! 39:22 – Chuck: M-A-Y-E-R. 39:36 – Picks! 39:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Benchmark-IPS Rbspy Ruby Benchmarking Benchmarking Bugs Coverband TracePoint RR 362 Episode Rails Guides Atomic Habits EasyRes Skinny Pop Blog through AppSignal Book: Extreme Ownership Noah Gibbs’ Twitter Dan Mayer’s Blog Dan Mayer’s Twitter Dan Mayer’s GitHub Dan Mayer’s Medium Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: David Atomic Habits by James Clear Dave EasyRes Skinny Pop Charles Extreme Ownership Jocko Willink podcast 2 Keto Dudes Ketogenic Forums Dan Artemis https://blog.appsignal.com/2018/09/28/active-record-vs-ecto.html https://github.com/evanphx/benchmark-ips https://github.com/rbspy/rbspy
Panel: Aimee Knight AJ O’Neal Aaron Frost Christopher Ferdinandi Special Guests: Christopher Buecheler In this episode, the panel talks with Christopher Buecheler who is an author, blogger, web developer, and founder of CloseBrace. The panel and Christopher talk about stepping outside of your comfort zone. With a technological world that is ever changing, it is important to always be learning within your field. Check out today’s episode to learn more! Show Topics: 0:00 – Advertisement: KENDO UI 1:08 – Aimee: Our guest is Christopher Buecheler – tell us about yourself and what you do. 1:22 – Guest: I run a site and help mid-career developers. I put out a weekly newsletter, too. 2:01 – Aimee: It says that you are a fan of “getting comfortable being uncomfortable”? 2:15 – Guest: I am a self-taught developer, so that means I am scrambling to learn new things all the time. You are often faced with learning new things. When I learned React I was dumped into it. The pain and the difficulty are necessary in order to improve. If you aren’t having that experience then you aren’t learning as much as you could be. 3:26 – Aimee: I borrow lessons that I learned from ice-skating to programming. 3:49 – Guest: I started running a few years ago for better health. It was exhausting and miserable at the start and wondered why I was doing it. Now I run 5 times a week, and there is always a level of being uncomfortable, but now it’s apart of the run. It’s an interesting comparison to coding. It’s this idea of pushing through. 5:01 – Aimee: If you are comfortable you probably aren’t growing that much. In our industry you always have to be learning because things change so much! 5:25 – Guest: Yes, exactly. If you are not careful you can miss opportunities. 6:33 – Panel: You have some ideas about frameworks and libraries – one thing that I am always anxious about is being able to make sense of “what are some new trends that I should pay attention to?” I remember interviewing with someone saying: this mobile thing is just a fad. I remember thinking that she is going to miss this opportunity. I am worried that I am going to be THAT guy. How do you figure out what sort of things you should / shouldn’t pay attention to? 7:47 – Guest: It is a super exhausting thing to keep up with – I agree. For me, a lot of what I pay attention to is the technology that has the backing of a multi-million dollar company then that shows that technology isn’t going anywhere, anytime soon. The other thing I would look at is how ACTIVE is the community around it? 9:15 – Panel: Is there a strategic way to approach this? There is so many different directions that you can grow and push yourself within your career? Do you have any kinds of thoughts/tips on how you want your career to evolve? 10:00 – Guest: I am trying to always communicate better to my newsletter audience. Also, a good approach, too, is what are people hiring for? 11:06 – Aimee: Again, I would say: focus on learning. 11:30 – Panel: And I agree with Aimee – “learn it and learn it well!” 12:01 – Panel: I want to ask Chris – what is CloseBrace? 12:17 – Guest: I founded it in November 2016, and started work on it back in 2013. 14:20 – Panel: It was filled with a bunch of buzz worthy words/title. 14:32 – Guest continues his thoughts/comments on CloseBrace. 16:54 – Panel: How is the growth going? 17:00 – Guest: It is growing very well. I put out a massive, massive tutorial course – I wouldn’t necessarily advice that people do this b/c it can be overwhelming. However, growth this year I have focused on marketing. I haven’t shared numbers or anything but it’s increased 500%, and I am happy about it. 18:05 – Panel: Are you keeping in-house? 18:13 – Guest: I think it would be cool to expand, but now it is in-house. I don’t want to borrow Egg Head’s setup. I would love to cover MORE topics, though. 19:05 – Panel: You are only one person. 19:08 – Guest: If I can get the site creating more revenue than I can hire someone to do video editing, etc. 19:35 – Panel: I think you are overthinking it. 19:45 – Guest. 19:47 – Advertisement – Sentry.io 20:47 – Guest. 21:30 – Aimee: There are SO many resources out there right now. Where do you think you fit into this landscape? 21:44 – The landscape is cluttered, but I feel that I am different b/c of my thoroughness. I don’t always explain line by line, but I do say how and why things work. I think also is my VOICE. Not my radio voice, but the tone and the approach you take with it. 23:25 – Panel: I was trying to copy folks in the beginning of my career. And at some point I realized that I needed to find my own style. It always came down to the reasons WHY I am different rather than the similarities. Like, Chris, you have these quick hits on CloseBrace, but some people might feel like they don’t have the time to get through ALL of your content, because it’s a lot. For me, that’s what I love about your content. 24:46 – Christopher: Yeah, it was intentional. 25:36 – Panel: Good for you. 25:49 – Guest: I am super device agnostic: Android, Mac, PC, etc. I have a lot of people from India that are more Microsoft-base. 26:28 – Aimee: I think Egghead is pretty good about this...do you cover testing at all with these things that you are doing? It’s good to do a “Hello World” but most of these sites don’t get into MORE complex pieces. I think that’s where you can get into trouble. It’s nice to have some boiler point testing, too. 27:18 – Guest answers Aimee’s question. 28:43 – Aimee: We work with a consultancy and I asked them to write tests for the things that we work with. That’s the value of the testing. It’s the code that comes out. 29:10 – Panel: Can you explain this to me. Why do I need to write tests? It’s always working (my code) so why do I have to write a test? 29:39 – Guest: When working with AWS I was writing... 31:01 – Aimee: My biggest thing is that I have seen enough that the people don’t value testing are in a very bad place, and the people that value testing are in a good place. It even comes back to the customers, because the code gets so hard that you end up repeatedly releasing bugs. Customers will stop paying their bills if this happens too often for them. 33:00 – Panel: Aimee / Chris do you have a preferred tool? I have done testing before, but not as much as I should be doing. 33:25 – Aimee: I like JEST and PUPPETEER. 33:58 – Guest: I like JEST, too. 34:20 – Aimee: Let’s go to PICKS! 34:35 – Advertisement – eBook: Get a coder job! Links: JavaScript jQuery React Elixir Elm Vue JEST Puppeteer Podflix Autojump Brutalist Web Design YouTube: Mac Miller Balloon Fiesta DocZ CloseBrace Christopher Buecheler’s Website Christopher Buecheler’s LinkedIn Christopher Buecheler’s GitHub Go Learn Things – Chris Ferdinandi Sponsors: Kendo UI Sentry Cache Fly Get a Coder Job Picks: Aimee Podflix Chris F. AutoJump Brutalist Web Design Mac Miller Tiny Desk Concert AJ Canada Dry with Lemonade Aaron ABQ Ballon Festival Joe Eames DND Recording Channel Christopher Docz South Reach Trilogy Jeff Vandermeer
Panel: Joe Eames Chris Fritz Divya Sasidharan Special Guest: Guillaume Chau In this episode, the panel talks with Guillaume Chau who is apart of the VueJS core team, a frontend engineer at Livestorm, and an open source contributor. The guest and the panelists talk about plugins, Webpack, Vue CLI, and much more! Check out today’s episode to hear all of the details. Show Topics: 0:00 – Advertisement – Kendo UI 1:00 – Chris lists who is on the panel along with today’s guest. Chris: Who are you and what are you working on? 1:50 – Guest: I am working on a startup in Paris. I am calling in from Lyon, France. 2:12 – Panel: Late there? 2:15 – Panel: Almost time for dinner? 2:21 – Guest: Yes, it’s cooking now! 2:26 – Panel asks a question. 2:43 – Guest answers the question. 3:14 – Panel: Anyone who didn’t want to be an expert, they don’t’ have to worry about how things tie together – you could help them with their configurations? 3:36 – Guest: A lot of the work is done for you with the configurations so you can start writing your apps. 3:53 – Panel: How is 3 different from 2? 4:06 – Guest: It’s like a new tool entirely. It’s working very different, too, with a different system. It has a different template base. 5:53 – Panel: To combine templates you have to understand it well, like different Webpacks. 6:12 – Guest: Regarding Webpacks and their configurations... 6:52 – Panel: With the template situation there was an issue where they would make their project and as new versions of Webpack came out...and new versions of Babble, and they will have to manage the dependencies of all of these. There might be some plugins that only work with x, y, and z. IT can be frustrating – can version 3 take care of this for you? 7:44 – Guest answers the question. 9:24 – Panel: How do you update plugins? 9:29 – Guest. 10:26 – Panel: Upgrade your plugins then as long as all of your plugins are the same version it’s okay? 10:34 – Guest: Yes. You can upgrade your... 11:38 – Chris: Divya, you just gave a talk (London) on...plugins, right? 11:50 – Divya: Yes. We talked about Webpack configurations. For example, if there are some testing libraries you can essentially setup a UCLI plugin to create a test – create a test folder – plugins let you generate files or folders (structure your project in a certain way). In London I talked about server less functions with... 13:30 – Panel: Any kind of pattern you want to use in different applications you can wrap that up in a plugin? 13:42 – Divya: Yes. Exactly. Instead of repeating yourself you can wrap it up. It’s really handy. 14:00 – Panel asks a question. 14:02 – Divya: You could do that... 14:10 – Panel: ...or a graph QL – Yes! 14:20 – Guest. 14:33 – Chris: Any thing that third-party plugins don’t have access to? 14:43 – Guest. 14:54 – Chris. 15:08 – Guest. 15:25 – Divya: ...if you want a UCLI service...and so you can grab those commands and add-on those commands and using those default commands. You have access to those commands, so you don’t always... 17:02 – Chris: Like deploy? 17:11 – Divya: Yes. 17:17 – Guest. 17:19 – Divya. Divya: Do you have strategies on how you go about testing your plugins? 17:35 – Guest: Yes, I do. 19:23 – Panel: So this is like end-to-end test for a CLI tool? 19:33 – Guest. 19:50 – Panel: Is there documentation for all of this? 19:59 – Guest. 20:14 – Divya: I think the way I’ve done tests is to edit an example a test project as a local dependency and then seeing that it works. I want to make sure that it works. Divya: And the other way I’ve done it is VUE CLI it is undocumented at the moment. You can test your CLI plugin from within the plugin itself. 21:55 – Guest: I’ve used some of those before. 22:08 – Chris: Speaking of the UI that is something I’d love to talk about. It seems unique to me – a CLI tool that has a UI that is built along with it. That seems strange to some people – how does that work and WHY would you need it? 22:42 – Guest: I’ll start with the WHY. It is way more powerful and as a greeter the API interface is more fixable so you can choose different options. For example when you create a project you can set different things. You basically have to name the project and you have simple options to choose form. Now it’s basically a really fixable system with plugins and stuff like that. I thought it would be nice to free it from the terminal. The best way to do that was creating a graphical interface. The main advantage of this was that you could add more information and explanations to what is going on. You can also create better interface. Guest: Also, it currently improves discoverability. 25:30 – Chris: You could do a search in the UI and type in the name of something you are working with and then your plugin would show up in the list – and then it would just be added to their project. That’s nice so they don’t have to go to the NPM or doing the README. 26:07 – Guest. 26:14 – Divya: I think it’s nice b/c I have used it extensively for my plugin. I want to see what hasn’t been taken already. I have a way of organizing my modules and I’ve used to it see what names have already been taken? 26:47 – Guest: I think sometimes... 27:15 – Divya: The feature that you are able to run tasks from the UI is nice. 27:55 – Chris: It sounds like it offers a nicer way to view a lot of things. One of the other advantages (that I found) is that I have a configuration to the listing rules to Vue – you can pick the exact rule set that you want to use. Normally when you look at a configuration file, you don’t know what rule sets are available, you don’t know what options are available. All of this you have to look at documentation. You can see descriptions of what each rule does. You can do so much in the UI. 29:19 – Guest. 29:40 – Advertisement – Get A Coder Job! 30:25 – Chris: Do they still need a terminal? 30:35 – Guest. 32:41 – Chris: That would be cool! 32:46 – Guest. 33:09 – Chris: They still need a little terminal knowledge right? 33:15 – Guest: Yes. 33:33 – Chris: They need a little terminal knowledge, they need to install the package, then they need to run VUE UI, then they can do anything from the terminal inside of the UI? 33:55 – Guest: You can create and import existing projects. 34:28 – Panel. 34:33 – Chris. 34:36 – Panel: It’s already active? 34:43 – Guest: I would like to talk about what I did in London. That conference I talked about... 37:00 – Panel. 37:07 – Guest. 37:20 – Panel: Nice! 37:25 – Guest. Guest: All of these widgets that I talked about you can use the product API and do anything that you want. 38:47 – Chris: If someone wants to see the dashboard that you are doing – where can they see that stuff? 39:00 – Guest: GitHub. Follow the manuscript instructions. 39:16 – Chris: Your London talk was recorded? 39:22 – Guest: Yes. 39:27 – Guest. 39:38 – Divya: Are you planning on giving this talk in other events? 39:47 – Guest: Maybe not anytime soon. 39:56 – Chris. 40:00 – Divya. 40:09 – Guest: It might be release already we don’t know. 40:15 – Divya: A date you would like to release by? 40:25 – Chris: Where can people support you and your work? 40:35 – Guest: Yes, they definitely can. You can check out the GitHub file. Also, check-out my open source work, too. 41:17 – Chris: Twitter? 41:19 – Guest: Yes. 41:24 – Chris: You have cute cat pictures, too. Let’s go to Picks!! 41:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue VUE CLI 3 Vue CLI – NPM React Angular JavaScript DevChat TV Article: Infrequently Noted Vue.js Fundamentals GetKap Snipcart Netlify Webpack.js Guillaume Chau’s Vue.JS LONDON Guillaume Chau’s Twitter Guillaume Chau’s LinkedIn Guillaume Chau’s GitHub Guillaume Chau’s GitHub Repositories Guillaume Chau’s ABOUT in Patreon.com Guillaume Chau’s Medium Guillaume Chau’s Info Divya’s London Talk Webpack – Configurations Graph QL Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe VueJS Fundamentals Developer Experience Bait and Switch Divya Get Kap Snipcart How we built a Due CLI Plugin for Netlify Lambda Chris Meditation Gratefulness Guillaume Exercise The Expanse
Panel: Aimee Knight AJ O’Neal Aaron Frost Christopher Ferdinandi Special Guests: Christopher Buecheler In this episode, the panel talks with Christopher Buecheler who is an author, blogger, web developer, and founder of CloseBrace. The panel and Christopher talk about stepping outside of your comfort zone. With a technological world that is ever changing, it is important to always be learning within your field. Check out today’s episode to learn more! Show Topics: 0:00 – Advertisement: KENDO UI 1:08 – Aimee: Our guest is Christopher Buecheler – tell us about yourself and what you do. 1:22 – Guest: I run a site and help mid-career developers. I put out a weekly newsletter, too. 2:01 – Aimee: It says that you are a fan of “getting comfortable being uncomfortable”? 2:15 – Guest: I am a self-taught developer, so that means I am scrambling to learn new things all the time. You are often faced with learning new things. When I learned React I was dumped into it. The pain and the difficulty are necessary in order to improve. If you aren’t having that experience then you aren’t learning as much as you could be. 3:26 – Aimee: I borrow lessons that I learned from ice-skating to programming. 3:49 – Guest: I started running a few years ago for better health. It was exhausting and miserable at the start and wondered why I was doing it. Now I run 5 times a week, and there is always a level of being uncomfortable, but now it’s apart of the run. It’s an interesting comparison to coding. It’s this idea of pushing through. 5:01 – Aimee: If you are comfortable you probably aren’t growing that much. In our industry you always have to be learning because things change so much! 5:25 – Guest: Yes, exactly. If you are not careful you can miss opportunities. 6:33 – Panel: You have some ideas about frameworks and libraries – one thing that I am always anxious about is being able to make sense of “what are some new trends that I should pay attention to?” I remember interviewing with someone saying: this mobile thing is just a fad. I remember thinking that she is going to miss this opportunity. I am worried that I am going to be THAT guy. How do you figure out what sort of things you should / shouldn’t pay attention to? 7:47 – Guest: It is a super exhausting thing to keep up with – I agree. For me, a lot of what I pay attention to is the technology that has the backing of a multi-million dollar company then that shows that technology isn’t going anywhere, anytime soon. The other thing I would look at is how ACTIVE is the community around it? 9:15 – Panel: Is there a strategic way to approach this? There is so many different directions that you can grow and push yourself within your career? Do you have any kinds of thoughts/tips on how you want your career to evolve? 10:00 – Guest: I am trying to always communicate better to my newsletter audience. Also, a good approach, too, is what are people hiring for? 11:06 – Aimee: Again, I would say: focus on learning. 11:30 – Panel: And I agree with Aimee – “learn it and learn it well!” 12:01 – Panel: I want to ask Chris – what is CloseBrace? 12:17 – Guest: I founded it in November 2016, and started work on it back in 2013. 14:20 – Panel: It was filled with a bunch of buzz worthy words/title. 14:32 – Guest continues his thoughts/comments on CloseBrace. 16:54 – Panel: How is the growth going? 17:00 – Guest: It is growing very well. I put out a massive, massive tutorial course – I wouldn’t necessarily advice that people do this b/c it can be overwhelming. However, growth this year I have focused on marketing. I haven’t shared numbers or anything but it’s increased 500%, and I am happy about it. 18:05 – Panel: Are you keeping in-house? 18:13 – Guest: I think it would be cool to expand, but now it is in-house. I don’t want to borrow Egg Head’s setup. I would love to cover MORE topics, though. 19:05 – Panel: You are only one person. 19:08 – Guest: If I can get the site creating more revenue than I can hire someone to do video editing, etc. 19:35 – Panel: I think you are overthinking it. 19:45 – Guest. 19:47 – Advertisement – Sentry.io 20:47 – Guest. 21:30 – Aimee: There are SO many resources out there right now. Where do you think you fit into this landscape? 21:44 – The landscape is cluttered, but I feel that I am different b/c of my thoroughness. I don’t always explain line by line, but I do say how and why things work. I think also is my VOICE. Not my radio voice, but the tone and the approach you take with it. 23:25 – Panel: I was trying to copy folks in the beginning of my career. And at some point I realized that I needed to find my own style. It always came down to the reasons WHY I am different rather than the similarities. Like, Chris, you have these quick hits on CloseBrace, but some people might feel like they don’t have the time to get through ALL of your content, because it’s a lot. For me, that’s what I love about your content. 24:46 – Christopher: Yeah, it was intentional. 25:36 – Panel: Good for you. 25:49 – Guest: I am super device agnostic: Android, Mac, PC, etc. I have a lot of people from India that are more Microsoft-base. 26:28 – Aimee: I think Egghead is pretty good about this...do you cover testing at all with these things that you are doing? It’s good to do a “Hello World” but most of these sites don’t get into MORE complex pieces. I think that’s where you can get into trouble. It’s nice to have some boiler point testing, too. 27:18 – Guest answers Aimee’s question. 28:43 – Aimee: We work with a consultancy and I asked them to write tests for the things that we work with. That’s the value of the testing. It’s the code that comes out. 29:10 – Panel: Can you explain this to me. Why do I need to write tests? It’s always working (my code) so why do I have to write a test? 29:39 – Guest: When working with AWS I was writing... 31:01 – Aimee: My biggest thing is that I have seen enough that the people don’t value testing are in a very bad place, and the people that value testing are in a good place. It even comes back to the customers, because the code gets so hard that you end up repeatedly releasing bugs. Customers will stop paying their bills if this happens too often for them. 33:00 – Panel: Aimee / Chris do you have a preferred tool? I have done testing before, but not as much as I should be doing. 33:25 – Aimee: I like JEST and PUPPETEER. 33:58 – Guest: I like JEST, too. 34:20 – Aimee: Let’s go to PICKS! 34:35 – Advertisement – eBook: Get a coder job! Links: JavaScript jQuery React Elixir Elm Vue JEST Puppeteer Podflix Autojump Brutalist Web Design YouTube: Mac Miller Balloon Fiesta DocZ CloseBrace Christopher Buecheler’s Website Christopher Buecheler’s LinkedIn Christopher Buecheler’s GitHub Go Learn Things – Chris Ferdinandi Sponsors: Kendo UI Sentry Cache Fly Get a Coder Job Picks: Aimee Podflix Chris F. AutoJump Brutalist Web Design Mac Miller Tiny Desk Concert AJ Canada Dry with Lemonade Aaron ABQ Ballon Festival Joe Eames DND Recording Channel Christopher Docz South Reach Trilogy Jeff Vandermeer
Panel: Joe Eames John Papa Eric Dietrich Special Guest: Peter Mbanugo In this episode, the panel talks with Peter Mbanugo who is a software developer, tech writer, and maker of Hamoni Sync. He currently works with Field Intelligence, where he helps build logistic and supply chain apps. He also gets involved in design research and customer support for these products. He's also a contributor to Hoodie and a member of the Offline-First community. You can follow him on Twitter. Show Topics: 0:00 – Advertisement – Kendo UI 1:12 – Eric: You, Peter, write a really interesting article. How did you come to write that blog? Tell me about yourself. 1:29 – (Peter talks about his blog and his current projects.) 2:18 – Eric: Tell us about the blog! 2:25 – Peter: I talk about real-time synchronization and why you need it for data. You can use the websocket API and other applications. 3:29 – Panel: Let’s take a step back. It could be helpful to know: what problem were you trying to solve with real-time data? 4:14 – Panel: So multiple client browsers? You are editing in one browser and the data is showing up in the other? You mentioned websockets and others – could you talk about WHY you didn’t go with the other ones? 4:45 – (Peter answers the question.) 6:08 – Panel: So you created Hamoni Sync, and when did you start it? 6:20 – Peter: Yes, and I wrote it in March. I used real-time systems. 6:52 – Panel: What does it mean? 6:55 – (Peter answers.) 7:07 – Panel: Looks like it’s reasonably priced, too. 7:33 – Panel: Let me ask you this. How easy is it to get up and running using this on a Vue project? 7:45 – Peter. 8:34 – Panel: You have to install through your dashboard, then... 8:46 – Peter. 8:53 – Panel: You mentioned earlier that you shouldn’t websocket API right now? 9:04 – Peter: Not all users would have a browser that would support that. 9:39 – Panel: Hamoni handles all of that for you, which is nice. So it has a simple API to use. You started in March – is this your fulltime job...or? 10:08 – Peter: I started a new job 2 months ago, so now it’s part-time. 10:20 – Panel: You can use with any JavaScript library? 10:24 – Peter. 10:31 – Panel: Why did you do a tutorial in Vue and not in Angular or React? 10:37 – Peter: I do have one in React, and then... 10:54 – Panel: How do you like Vue so far? 10:55 – Peter. 11:15- Panel: The simplicity of Vue and you can take an older app and you can switch it over and not worry about jQuery and just go from there. Angular one days and instead of Angular 2+ or 6 now – Vue is an easy upgrade transition for sure. 11:47 – Peter. 11:51 – Panel: Walk us through how an app would work with this? 12:09 – Peter: When you connect you... 12:40 – Panel: What server is the data going to? 12:46 – Peter. 12:51 – Peter: I have a cloud service. 13:00 – Panel: How do they still get performance if there are a lot of people on at the same time? 13:06 – Peter. 13:17 – Panel: It handles all of the scaling? 13:23 – (Panelist walks through the process.) 13:44 – Peter: No scaling issues, yet. 14:05 – Peter: I haven’t launched, yet, through Product Hunt. 14:20 – Peter: The plan is to do that next month or middle of next month? 14:33 – Panel: Maybe once this podcast launches – that’s cool. What other apps can use real-time? Like a chat room is obvious when they are learning with socket IO. Is this beyond Vue? 15:07 – Peter: Yeah, in general it could be used for real-time chat applications and... 15:21 – Panel: Stock market updates? 15:28 – Peter: Yes. No, not animals. Maybe games for multi-player games. For chat room application. 18:45 – Panel: Demopuppy.com 19:11 – Advertisement – Get A Coder Job! 20:00 – Peter: Related to the blog we have covered it well. Why you would use real-time and the different ways you can do it with websocket. 20:23 – Panel: You are in Nigeria? 20:24 – Peter: Yes. 20:27 – Panel: How is Vue.js in Nigeria – do you have Meetups? 20:44 – Peter: I think the tech scene is doing quite well. Mainly Angular and others use other frameworks. 22:08 – Panel: Conference and asking for people to contribute? (Yes.) That sounds great for an active community. Getting hard jobs in tech is hard but maybe hard in specific places. 22:39 – Peter: It is great the great one for React b/c of the popularity in React. React or Angular; one of the two. 23:12 – Panel: If you know your stuff you are good to go? 23:19 – Peter: Yes. Microsoft’s .NET is quite stable. 23:37 – Panel: You are starting a startup is that common in Nigeria? 23:49 – Peter: The startup is small actually. 24:37 – Panel: Are you in the capitol? (Yes.) There is a misconception there that people think you have to be in the California or bay area, and you can see that it’s not true. You can create cool things no matter where you are! 25:08 – Peter: It’s great to see the diversity. 25:14 – Panel: I think it’s cool what you are doing. I am glad you wrote an article. What is HospitalRun? 25:42 – Peter: It’s a hospital management system to work offline first. To use them in remote areas where there is no connectivity. 27:08 – Panel: It’s an opensource project – Hospital.io. You are more the maintainer of the frontend right? 28:05 – Peter: Yes. 28:11 – Panel: A lot of hospitals are using this and need contributors and if you want to have a real difference check it out. What do you do as the maintainer are you reviewing code requests? 28:40 – Peter. 28:56 – Panel: Ember.js? 29:00 – Peter: No, I am being dumped into Ember into the deep-end. 29:20 – Panel: I think we are going to go to our picks now? How can 29:30 – Peter: Twitter and email. Check out the show notes! 29:50 – Panel: Picks! 29:58 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React Angular JavaScript DevChat TV Can I Use Websocket? Demopuppy.com HospitalRun.io What are the best tools for automating social media growth? Peter Mbanugo’s Twitter Peter Mbanugo’s Email: p.mbanugo@yahoo.com Peter’s blogs Vue Mastery Hoodie Meetups Hamoni Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe Dungeon and Dragons recordings coming soon on YouTube Blog - Good Bye Redux John Talk like a pirate day I Can Use Product Hunt Vue Mastery Peter Hoodie Vue Dev Tools Ego is the Enemy Eric Halt and Catch fire Vue.JS in Action
Panel: Aimee Knight Charles Max Wood Joe Eames AJ O’Neil Chris Ferdinandi Special Guests: Charles Lowell (New Mexico) & Taras Mankovski (Toronto) In this episode, the panel talks with two special guests Charles and Taras. Charles Lowell is a principle engineer at Frontside, and he loves to code. Taras works with Charles and joined Frontside, because of Charles’ love for coding. There are great personalities at Frontside, which are quite diverse. Check out this episode to hear about microstates, microstates with react, Redux, and much more! Show Topics: 1:20 – Chuck: Let’s talk about microstates – what is that? 1:32 – Guest: My mind is focused on the how and not the what. I will zoom my mind out and let’s talk about the purposes of microstates. It means a few things. 1.) It’s going to work no matter what framework you are using. 2.) You shouldn’t have to be constantly reinventing the wheel. React Roundup – I talked about it there at this conference. Finally, it really needs to feel JavaScript. We didn’t want you to feel like you weren’t using JavaScript. It uses computer properties off of those models. It doesn’t feel like there is anything special that you are doing. There are just a few simple rules. You can’t mutate the state in place. If you work with JavaScript you can use it very easily. Is that a high-level view? 7:13 – Panel: There are a lot of pieces. If I spoke on a few specific things I would say that it enables programming with state machines. 7:42 – Panel: We wanted it to fell like JavaScript – that’s what I heard. 7:49 – Aimee: I heard that, too. 7:59 – Guest. 8:15 – Aimee: Redux feels like JavaScript to me. 8:25 – Guest: It’s actually – a tool – that it feels natural so it’s not contrived. It’s all JavaScript. 8:49 – Panel. 9:28 – Guest: Idiomatic Ember for example. Idiomatic in the sense that it gives you object for you to work with, which are simple objects. 10:12 – Guest: You have your reducers and your...we could do those things but ultimately it’s powerful – and not action names – we use method names; the name of the method. 11:20 – Panel: I was digging through docs, and it feels like NORMAL JavaScript. It doesn’t seem like it’s tied to a certain framework or library platform? 11:45 – Guest: Yes, we felt a lot of time designing the interfaces the API and the implementation. We wanted it to feel natural but a tool that people reach for. (Guest continues to talk about WHY they created microstates.) Guest: We wanted to scale very well what you need when your needs to change. 13:39 – Chuck: I have a lot of friends who get into React and then they put in Redux then they realize they have to do a lot of work – and that makes sense to do less is more. 14:17 – Guest: To define these microstates and build them up incrementally...building smaller microstates out of larger ones. Guest continued: Will we be able to people can distribute React components a sweet array of components ready for me to use – would I be able to do the same for a small piece of state? We call them state machines, but ultimately we have some state that is driving it. Would we be able to distribute and share? 16:15 – Panel: I understand that this is tiny – but why wouldn’t I just use the native features in specific the immutability component to it? 16:42 – Guest: I’m glad you asked that question. We wanted to answer the question... Guest: With microstates you can have strict control and it gives you the benefit of doing sophisticated things very easily. 18:33 – Guest: You mentioned immutability that’s good that you did. It’s important to capture – and capturing the naturalness of JavaScript. It’s easy to build complex structures – and there is an appeal to that. We are building these graphs and these building up these trees. You brought up immutability – why through it away b/c it’s the essence of being a developer. If you have 3-4-5 levels of nesting you have to de-structure – get to the piece of data – change it – and in your state transition 80% of your code is navigating to the change and only 20% to actually make the change. You don’t have to make that tradeoff. 21:25 – Aimee: The one thing I like about the immutability b/c of the way you test it. 21:45 – Guest: There a few things you can test. 23:01 – Aimee: You did a good job of explaining it. 23:15 – Guest: It makes the things usually hard easy! With immutability you can loose control, and if that happens you can get so confused. You don’t have a way to have a way to navigate to clarity. That’s what this does is make it less confusing. It gives you order and structure. It gives you a very clear path to do things you need to do. If there is a property on your object, and if there is a way to change it... 25:29 – Guest: The only constant is change no matter what framework you are working on. 24:46 – Chuck: We are talking about the benefits and philosophy. What if I have an app – and I realize I need state management – how do I put microstates into my app? It’s using Angular or React – how do I get my data into microstates? 26:35 – Guest: I can tell you what the integration looks like for any framework. You take a type and you passed that type and some value to the create function so what you get is a microstate. (The Guest continues diving into his answer.) 28:18 – Guest: That story is very similar to Redux, basically an event emitter. The state changes on the store. Maybe this is a good time to talk about the stability benefits and the lazy benefits because microstates is both of those things. Stability – if I invoke a transition and the result is unchanged – same microstate – it doesn’t emit an event. It recognizes it internally. It will recognize that it’s the same item. Using that in Ember or Redux you’d have to be doing thousands of actions and doing all that computation, but stability at that level. Also, stability in the sense of a tree. If I change one object then that changes it won’t change an element that it doesn’t need to change. 31:33 – Advertisement: Sentry.io 32:29 – Guest: I want to go back to your question, Chuck. Did we answer it? 32:40 – Chuck: Kind of. 32:50 – Guest. 32:59 – Guest: In Angular for example you can essentially turn a microstate... 33:51 – Guest: You could implement a connect, too. Because the primitive is small – there is no limit. 34:18 – Chuck summarizes their answers into his own words. 34:42 – Guest: If you were using a vanilla React component – this dot – I will bind this. You bind all of these features and then you pass them into your template. You can take it as a property...those are those handlers. They will perform the transition, update and what needs to be updated will happen. 35:55 – Chuck: Data and transitions are 2 separate things but you melded them together to feel like 1 thing. This way it keeps clean and fast. 36:16 – Guest: Every framework helps you in each way. Microstates let’s you do a few things: the quality of your data all in one place and you can share. 38:12 – Guest: He made and integrated Microstates with Redux tools. 38:28 – Guest talks about paths, microstates to trees. 39:22 – Chuck. 39:25 – Panel: When I think about state machines I have been half listening / half going through the docs. When I think of state machines I think about discreet operations like a literal machine. Like a robot of many steps it can step through. We have been talking about frontend frameworks like React - is this applicable to the more traditional systems like mechanical control or is it geared towards Vue layered applications? 40:23 – Guest: Absolutely. We have BIG TEST and it has a Vue component. 41:15 – Guest: when you create a microstate from a type you are creating an object that you can work with. 42:11 – Guest: Joe, I know you have experience with Angular I would love to get your insight. 42:33 – Joe: I feel like I have less experience with RX.js. A lot of what we are talking about and I am a traditionalist, and I would like you to introduce you guys to this topic. From my perspective, where would someone start if they haven’t been doing Flux pattern and I hear this podcast. I think this is a great solution – where do I get started? The official documents? Or is it the right solution to that person? 43:50 – Guest: Draw out the state machine that you want to represent in your Vue. These are the states that this can be in and this is the data that is required to get from one thing to the other. It’s a rope process. The arrow corresponds to the method, and... 44:49 – Panel: It reminds me back in the day of rational rows. 44:56 – Guest: My first job we were using rational rows. 45:22 – Panelist: Think through the state transitions – interesting that you are saying that. What about that I am in the middle – do you stop and think through it or no? 46:06 – Guest: I think it’s a Trojan horse in some ways. I think what’s interesting you start to realize how you implement your state transitions. 48:00 – (Guest continues.) 48:45 – Panel: That’s interesting. Do you have that in the docs to that process of stopping and thinking through your state transitions and putting into the microstate? 49:05 – Guest: I talked about this back in 2016. I outlined that process. When this project was in the Ember community. 49:16 – Guest: The next step for us is to make this information accessible. We’ve been shedding a few topics and saying this is how to use microstates in your project. We need to write up those guides to help them benefit in their applications. 50:00 – Chuck: What’s the future look like? 50:03 – Guest: We are working on performance profiling. Essentially you can hook up microstates to a fire hose. The next thing is settling on a pattern for modeling side effects inside microstates. Microstates are STATE and it’s immutable. 52:12 – Guest: Getting documentation. We have good README but we need traditional docs, too. 52:20 – Chuck: Anything else? 52:28 – Guest: If you need help email us and gives us a shot-out. 53:03 – Chuck: Let’s do some picks! 53:05 – Advertisement for Charles Max Wood’s course! Links: Kendo UI Frontside Redux Microstates Microstates with React Taras Mankovski’s Twitter Taras Mankovski’s GitHub Taras Mankovski’s LinkedIn Taras Mankovski’s Frontside Bio Charles Lowell’s Twitter Charles Lowell’s GitHub Charles Lowell’s Frontside Bio Schedule Once Ruby on Rails Angular Get A Coder Job YouTube Talks Email: cowboyd@frontside.io Working with State Machines Twitch TV BigTest Close Brace REEF The Developer Experience YouTube Video Sponsors: Kendo UI Sentry.io – 2 months free – DEVCHAT/code Get A Coder Job Picks: Aimee ShopTalk Episode 327 Professional JavaScript for Web Developers Technical Debt Stripe Taras Twitch Channel Big Test Frontside Charles Lowell Chalkboards Sargent Art Chalk Chris Close Brace LaCroix Water Chris’s Git Hub Joe The Developer Experience Bait and Switch Good Bye Redux Recording Dungeon and Dragons AJ UtahJS Conf Start with Why The Rust Book VanillaJS w/ Chris Zero to One Charles Podwrench.com - beta getacoderjob.com
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Genadi Samokovarov In this episode of Ruby Rogues, the panel talks with Genadi Samokovarov who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at GitHub and his mixes on SoundCloud. Finally, he blogs about technology that he cares about. Check-out his post about a curious Proc.new case in Ruby. If you are interested in his work experience, check out his resume here. Send Genadi an email or follow his social links. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:30 – Chuck: Introduce yourself please. 1:39 – The guest talks about his background and the company he works for. 2:03 – Chuck: Did you build the web console or something else? 2:05 – Guest. 3:20 – Chuck: How do you run Ruby on the web console? 3:40 – Guest answers Chuck’s question. 4:13 – Chuck: The other question is about security concerns – you don’t want to run in production? 4:25 – Guest: No, you don’t want to do that. 4:31 – Chuck: Use at home - don’t use it on your work server. 5:15 – Panel: It’s one of those features that people overlook on Rails. You have to proactively add in a pack to launch in a web console in that particular view. A lot of times people will either throw away rays (ERB) and they are able to get the same thing but you can interact with the page w/o full rendering of the application. What I just mentioned what does a web console has a space for? 6:18 – Guest. 7:23 – Panel: What would happen – if I put a debugging code in my application and it got committed and shipped – what would happen? 7:46 – Guest answers. 8:24 – Chuck: When you deploy a production I don’t even know what this tag is? 8:33 – Guest. 9:10 – Chuck: Can I run it on Sinatra...or the other ones? 9:20 – Guest: If you make a bit of effort... 9:42 – Chuck: How does it pass things to the backend? 9:52 – Guest. 11:22 – Chuck: Let’s say you set this up and you would include the gem in the Rails app – I guess it comes by default. 11:36 – Guest. 11:58 – Panel: And if you want to embed it in a view in Rails? 12:05 – Guest. 12:06 – Chuck: That’s nice. 12:08 – Guest. 12:43 – Panel: I would think that would be the most exciting things. I know the views and how it’s included there is a little bit of a black box for me. I don’t know quite what is going on and that’s after many years of use. Being able to open the web console and see what’s going on and see what I was thinking. Sometimes when I have hard times with my code it’s because I didn’t understand the Rails way and how they organize things. So for me to take a look it dawns on me. 13:33 – Guest. 13:41 – Panel: I learned Rails on a laptop. I went to terminal mode only and I learned it really, really well. 14:21 – Guest. 14:27 – Panel: Can web console do a separate JavaScript app and then you have a Ruby API backend – can you use console any plugin to integrate with that? 15:00 – Guest. 16:20 – Panel: That’s really cool, and good note. When people are developing a gem they keep one type of Ruby or whatever. They don’t take into account that Ruby or the MRI or whatever they are using it’s cool that you are proactive keeping into account the different interpreters and it works across the platform. 16:56 – Guest: It’s a tricky business. 18:39 – Panel: So is this under active development or...? 18:45 – Guest. 18:53 – Chuck: What was the hardest part to put this together? 19:00 – Guest: Getting it to work! 19:09 – Chuck: Nope...just getting it to work. 19:15 – Guest. 20:43 – Panel: That’s something where I have been in situations where it has given back the Rails spec trace. Not the actual application – I have no idea how to debug it. Then I dig in deeper and find it’s in my application part. It is important to have that. 21:13 – Guest. 21:51 – Get A Coder Job! 22:15 – Chuck: Anything else or should we talk about the conference for a minute? 22:30 – Guest. 24:09 – Panel: So you are getting these conferences going – is there a healthy/strong Ruby following in Bulgaria, generally? 24:25 – Guest: We do Meetups. It’s pretty active and a healthy community. It’s not as strong as the States, but it’s strong. 25:26 – Panel: Nice. I find that it’s interesting – I was around with Ruby in 2004, and people have been using Ruby for a while and Rails was new. It’s fun to build an organization around that and empower people to do great things. It’s great to do work that are learning Ruby. 26:08 – Guest. 26:25 – Panel: So that’s one of my coworkers and got him using VS code and show people the light to make the switch. 26:50 – Chuck: I’ve already switched. 27:01 – Panel: We like our tools. 27:17 – Guest: I guess my people like VS code b/c it’s easier to maintain. 27:35 – Panel: Maybe my mind is so feeble-minded. 27:45 – Chuck: I turned on the EMAX for along time and turned on my EMAX in my KS code. I get the nice extras. I don’t feel like there are 10 zillion things to worry about. 28:12 – Guest. 28:21 – Panel: I think the key is the expressiveness – get it the ways I want 28:38 – Chuck: I just want to think of the fact that I am using code – and that’s a good thing. 28:54 – Guest. 29:04 – Panel: How many attendees did you have? 29:08 – Guest. 29:22 – Chuck: The conferences that I like to attend that have an attendance of 150, I like b/c it’s intimate. The larger conferences I feel lost in the crowd. It’s just different for me. 30:17 – Panel: It makes it easy to break into groups if the conference is small. 30:30 – Panel: There are so many things that the experts can teach and show to the beginners. They could teach me something that I didn’t know. It’s powerful b/c you’re talking about projects and get to know each other. 31:39 – Guest. 32:16 – Panel: One thing I like is that the attendees make a Slack channel, and the speaker can address that during the talk. Sometimes they get answered, but just in case. 32:40 – Chuck: Anything you’re working on now? 32:43 – Guest. 32:52 – Panel: Nice. 33:00 – Guest. 33:37 – Chuck: How can people find out about these different conferences? 33:50 – Guest: We have a Twitter account. 33:04 – Chuck: Let’s go to picks! 34:12 – Advertisement – Fresh Books! 41:31 – Cache Fly! Links: Get a Coder Job Course Ruby Ruby Motion Ruby on Rails Angular Ruby Issue Tracking System Libraries.io Balkan Ruby Partial Conf Chaos Group Genadi Samokovarov’s Twitter Genadi Samokovarov’s GitHub Genadi Samokovarov’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David Creative Quest by Quest Love The Rhythm in Everything Dave Dewalt Clamps Action Text Charles The Diabetes Code Keto Diet Endorsed Local Providers via Dave Ramsey Genadi Long Walk Freedom
Panel: Lucas Reis Justin Bennett Special Guests: Alexey Ivanov and Andy Barnov In this episode, the panelists talk with Alexey Ivanov and Andy Barnov. They all discuss Alexey’s article titled: “Optimizing React Virtual DOM.” Listen to today’s episode to hear all the details about this article, the guests’ backgrounds and much, much more! Show Topics: 0:32 – Panel: Thanks for joining us and talking about this article. 0:52 – Guest: Thanks for having us on your podcast! The guest talks about his community of developers and the offices are in San Francisco, Russia and other places. He talks about how the company helps their customers and how they can scale. Some of their companies are Groupon and Ebay. 2:39 – Alexey. 3:09 – Panel: The article is here. What is JSX how does it boil down to? It’s all supposed to help people and help them understand. 3:45 – Alexey: It’s about how to structure your state, etc. 4:15 – Panel: This keeps things small. He said when I have one idea I write a song and when I have 2 ideas I write 2 songs. If you try to put too many ideas into one post it maybe won’t go too far. 4:48 – Alexey. 5:50 – Panel. 5:56 – Panel: That’s a topic for another episode. The article is interesting in that the large percentage don’t think about rendering performance, so it’s a needed piece of content. Let’s talk about – what is the React Virtual DOM? 6:32 – Alexey goes into detail with his answer to the panelist’s question. 8:50 – Panel: What I like about this article is that you go through a good progression: here is the JSX that you would write and here is the trans piled function is. And you show the virtual DOM pre-presentation is. I think that is a helpful thing. Let’s talk about that. How does React change to those things when it’s rendering? 9:50 – Alexey. 12:58 – Panel: Okay to recap...when you are rendering an element you write some JSX and the first thing (component) that will map over to the type property is for the Virtual DOM object? And then all of that is compared – when does that happen, the comparison? 13:28 – Alexey: You have React and you create... 15:20 – Panel: So it’s both React and set state these are the only 2 things that triggered state or is there anything else out there? 15:31 – Alexey. 15:47 – Panel: Interesting. You talked about the imperative way we did it before – and it’s much simpler to say what you want, but a question is that is there any world case where it does not work well? What are the trade-offs? Have you ever encountered one? 16:34 – Alexey: If you have changes in the browse, implementations...it’s simplest and easiest way. You just need to have some little changes... 17:53 – Panel: If it’s basic then you don’t have to do manual updates. 18:03 – Alexey. Alexey: To make it work you need competence in your bundle. 18:36 – Panel: I’ve heard – haven’t worked with – when we have these projects that are really web time based, hundreds of elements in real time on a screen, on a Virtual DOM it’s too slow. You have to be precise. They had performance issues, I’m sure 98.99% of the applications probably perform better with the Virtual DOM. 19:46 – Alexey. 21:38 – Panel: That is to reduce the amount of state changes so you are reducing the amount of time it renders – right? 21:50 – Alexey. 22:03 – FRESH BOOKS! 23:11 – Panel: We talked about how type is the first thing that is checked. It does equal comparison to compare these types. What was really interesting is that class components are the same thing but not so. Is it always going to re-render for those components? 24:24 – Alexey: We have to talk about 2 things about this first. In my article... 27:49 – Panel: That is a beneficial tool too to control your rendering. You talked about tools to show updates and we will include the link to the article in the links, also I would read it and check out that particular function. It’s cool to see HOW it’s actually rendering. 28:29 – Panel: Apparently sometimes things help us in principle cause we need performance. We need to open the tools and understand what is happening? Is it really a bottleneck like I think it is? One of those Twitter things I saw a few months ago... 30:52 – Alexey: Yes, do what makes sense to you at the time. 32:08 – Panel: We talked about render performance and the pure component and not creating functions...you have a big quote in your article... I have a big question for me: You have a component, and there is a child / parent component. I am curious about that pattern – will it re-render every time? Tell us your thoughts, please. 33:16 – Alexey. 34:11 – Panel: My only issue with the render props is not a performance issue it’s more of an architectural issue. Sometimes we want things to be interjected. I want to have access to this or that. Sometimes we want to access those on a life cycle. The higher the component makes it easier to add a... That’s my only complaint about render comps. 35:35 – Alexey. 36:00 – Panel: Like composing consumers? 36:06 – Alexey: What we are talking about is... 37:00 – Panel: I agree. There are some interesting cases with that pattern when you have a lot of those chained together – function, function, etc. – there are some components that will help you compose... 37:34 – Panel: It’s like callback hell all over again. Everything is a tradeoff somewhere. After the tree it looks clean with render props. I like it even with the drawbacks. 38:25 – Panel: You spent some time talking about lists of children and how you (if one of the children are removed) then it ends up re rendering all the children cause it’s comparing their positions. You mentioned key is one way to deal with that. Let’s talk about keys. When people use keys they are using an array of an index. It seems like it defeats the purpose of it – is that right? 39:20 – Alexey: Yes, you are right. 40:19 – Panel: I think that continually and it’s a smaller known thing but people want this key error to go away and they just shove something in there. To some extent it’s good to know if your tool requires something it’s good to know WHY it requires that. 40:52 – Panel: Last question. Is that the person to program and be a web developer and they are learning React. This is the tool and they are learning how to use React for an app then when we are throwing articles at them. If they are learning React and these articles are at them I think it’s a cognitive overload. What are your thoughts / advice? 42:07 – Guest: How beginner should you be before you learn React? Ideally you should be aware of JavaScript, right? Sometimes people do this to catch up to something shiny. This is just my 2 cents. 43:03 – Alexey. 44:49 – Panel: When you are going to hire someone to do something or choose a framework always try to do a little bit of work without it. Try to build an application w/o React, and then React is introduced to you, you will only see the benefits that they are brining. One thing that happens inside the React world is that people don’t write an application... Start with the basic building blocks – that makes sense to me. 46:05 – Panel: Let’s go to picks! 46:13 – Advertisement – Get A Coder Job! Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub React: The Virtual DOM Elixir and Phoenix Bootcamp Alexey Ivanov’s Twitter Andy Barnov’s Twitter Rob Pike’s YouTube Video Understanding Comics Understanding Comics – Book Get A Coder Job Charles Max Wood’s Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Lucas Check your room for sound Andy Go Programming Language Alexey Understanding comics Justin The Complete Elixir and Phoenix Bootcamp
Panel: Lucas Reis Justin Bennett Special Guests: Alexey Ivanov and Andy Barnov In this episode, the panelists talk with Alexey Ivanov and Andy Barnov. They all discuss Alexey’s article titled: “Optimizing React Virtual DOM.” Listen to today’s episode to hear all the details about this article, the guests’ backgrounds and much, much more! Show Topics: 0:32 – Panel: Thanks for joining us and talking about this article. 0:52 – Guest: Thanks for having us on your podcast! The guest talks about his community of developers and the offices are in San Francisco, Russia and other places. He talks about how the company helps their customers and how they can scale. Some of their companies are Groupon and Ebay. 2:39 – Alexey. 3:09 – Panel: The article is here. What is JSX how does it boil down to? It’s all supposed to help people and help them understand. 3:45 – Alexey: It’s about how to structure your state, etc. 4:15 – Panel: This keeps things small. He said when I have one idea I write a song and when I have 2 ideas I write 2 songs. If you try to put too many ideas into one post it maybe won’t go too far. 4:48 – Alexey. 5:50 – Panel. 5:56 – Panel: That’s a topic for another episode. The article is interesting in that the large percentage don’t think about rendering performance, so it’s a needed piece of content. Let’s talk about – what is the React Virtual DOM? 6:32 – Alexey goes into detail with his answer to the panelist’s question. 8:50 – Panel: What I like about this article is that you go through a good progression: here is the JSX that you would write and here is the trans piled function is. And you show the virtual DOM pre-presentation is. I think that is a helpful thing. Let’s talk about that. How does React change to those things when it’s rendering? 9:50 – Alexey. 12:58 – Panel: Okay to recap...when you are rendering an element you write some JSX and the first thing (component) that will map over to the type property is for the Virtual DOM object? And then all of that is compared – when does that happen, the comparison? 13:28 – Alexey: You have React and you create... 15:20 – Panel: So it’s both React and set state these are the only 2 things that triggered state or is there anything else out there? 15:31 – Alexey. 15:47 – Panel: Interesting. You talked about the imperative way we did it before – and it’s much simpler to say what you want, but a question is that is there any world case where it does not work well? What are the trade-offs? Have you ever encountered one? 16:34 – Alexey: If you have changes in the browse, implementations...it’s simplest and easiest way. You just need to have some little changes... 17:53 – Panel: If it’s basic then you don’t have to do manual updates. 18:03 – Alexey. Alexey: To make it work you need competence in your bundle. 18:36 – Panel: I’ve heard – haven’t worked with – when we have these projects that are really web time based, hundreds of elements in real time on a screen, on a Virtual DOM it’s too slow. You have to be precise. They had performance issues, I’m sure 98.99% of the applications probably perform better with the Virtual DOM. 19:46 – Alexey. 21:38 – Panel: That is to reduce the amount of state changes so you are reducing the amount of time it renders – right? 21:50 – Alexey. 22:03 – FRESH BOOKS! 23:11 – Panel: We talked about how type is the first thing that is checked. It does equal comparison to compare these types. What was really interesting is that class components are the same thing but not so. Is it always going to re-render for those components? 24:24 – Alexey: We have to talk about 2 things about this first. In my article... 27:49 – Panel: That is a beneficial tool too to control your rendering. You talked about tools to show updates and we will include the link to the article in the links, also I would read it and check out that particular function. It’s cool to see HOW it’s actually rendering. 28:29 – Panel: Apparently sometimes things help us in principle cause we need performance. We need to open the tools and understand what is happening? Is it really a bottleneck like I think it is? One of those Twitter things I saw a few months ago... 30:52 – Alexey: Yes, do what makes sense to you at the time. 32:08 – Panel: We talked about render performance and the pure component and not creating functions...you have a big quote in your article... I have a big question for me: You have a component, and there is a child / parent component. I am curious about that pattern – will it re-render every time? Tell us your thoughts, please. 33:16 – Alexey. 34:11 – Panel: My only issue with the render props is not a performance issue it’s more of an architectural issue. Sometimes we want things to be interjected. I want to have access to this or that. Sometimes we want to access those on a life cycle. The higher the component makes it easier to add a... That’s my only complaint about render comps. 35:35 – Alexey. 36:00 – Panel: Like composing consumers? 36:06 – Alexey: What we are talking about is... 37:00 – Panel: I agree. There are some interesting cases with that pattern when you have a lot of those chained together – function, function, etc. – there are some components that will help you compose... 37:34 – Panel: It’s like callback hell all over again. Everything is a tradeoff somewhere. After the tree it looks clean with render props. I like it even with the drawbacks. 38:25 – Panel: You spent some time talking about lists of children and how you (if one of the children are removed) then it ends up re rendering all the children cause it’s comparing their positions. You mentioned key is one way to deal with that. Let’s talk about keys. When people use keys they are using an array of an index. It seems like it defeats the purpose of it – is that right? 39:20 – Alexey: Yes, you are right. 40:19 – Panel: I think that continually and it’s a smaller known thing but people want this key error to go away and they just shove something in there. To some extent it’s good to know if your tool requires something it’s good to know WHY it requires that. 40:52 – Panel: Last question. Is that the person to program and be a web developer and they are learning React. This is the tool and they are learning how to use React for an app then when we are throwing articles at them. If they are learning React and these articles are at them I think it’s a cognitive overload. What are your thoughts / advice? 42:07 – Guest: How beginner should you be before you learn React? Ideally you should be aware of JavaScript, right? Sometimes people do this to catch up to something shiny. This is just my 2 cents. 43:03 – Alexey. 44:49 – Panel: When you are going to hire someone to do something or choose a framework always try to do a little bit of work without it. Try to build an application w/o React, and then React is introduced to you, you will only see the benefits that they are brining. One thing that happens inside the React world is that people don’t write an application... Start with the basic building blocks – that makes sense to me. 46:05 – Panel: Let’s go to picks! 46:13 – Advertisement – Get A Coder Job! Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub React: The Virtual DOM Elixir and Phoenix Bootcamp Alexey Ivanov’s Twitter Andy Barnov’s Twitter Rob Pike’s YouTube Video Understanding Comics Understanding Comics – Book Get A Coder Job Charles Max Wood’s Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Lucas Check your room for sound Andy Go Programming Language Alexey Understanding comics Justin The Complete Elixir and Phoenix Bootcamp
Panel: Aimee Knight Charles Max Wood Joe Eames AJ O’Neil Chris Ferdinandi Special Guests: Charles Lowell (New Mexico) & Taras Mankovski (Toronto) In this episode, the panel talks with two special guests Charles and Taras. Charles Lowell is a principle engineer at Frontside, and he loves to code. Taras works with Charles and joined Frontside, because of Charles’ love for coding. There are great personalities at Frontside, which are quite diverse. Check out this episode to hear about microstates, microstates with react, Redux, and much more! Show Topics: 1:20 – Chuck: Let’s talk about microstates – what is that? 1:32 – Guest: My mind is focused on the how and not the what. I will zoom my mind out and let’s talk about the purposes of microstates. It means a few things. 1.) It’s going to work no matter what framework you are using. 2.) You shouldn’t have to be constantly reinventing the wheel. React Roundup – I talked about it there at this conference. Finally, it really needs to feel JavaScript. We didn’t want you to feel like you weren’t using JavaScript. It uses computer properties off of those models. It doesn’t feel like there is anything special that you are doing. There are just a few simple rules. You can’t mutate the state in place. If you work with JavaScript you can use it very easily. Is that a high-level view? 7:13 – Panel: There are a lot of pieces. If I spoke on a few specific things I would say that it enables programming with state machines. 7:42 – Panel: We wanted it to fell like JavaScript – that’s what I heard. 7:49 – Aimee: I heard that, too. 7:59 – Guest. 8:15 – Aimee: Redux feels like JavaScript to me. 8:25 – Guest: It’s actually – a tool – that it feels natural so it’s not contrived. It’s all JavaScript. 8:49 – Panel. 9:28 – Guest: Idiomatic Ember for example. Idiomatic in the sense that it gives you object for you to work with, which are simple objects. 10:12 – Guest: You have your reducers and your...we could do those things but ultimately it’s powerful – and not action names – we use method names; the name of the method. 11:20 – Panel: I was digging through docs, and it feels like NORMAL JavaScript. It doesn’t seem like it’s tied to a certain framework or library platform? 11:45 – Guest: Yes, we felt a lot of time designing the interfaces the API and the implementation. We wanted it to feel natural but a tool that people reach for. (Guest continues to talk about WHY they created microstates.) Guest: We wanted to scale very well what you need when your needs to change. 13:39 – Chuck: I have a lot of friends who get into React and then they put in Redux then they realize they have to do a lot of work – and that makes sense to do less is more. 14:17 – Guest: To define these microstates and build them up incrementally...building smaller microstates out of larger ones. Guest continued: Will we be able to people can distribute React components a sweet array of components ready for me to use – would I be able to do the same for a small piece of state? We call them state machines, but ultimately we have some state that is driving it. Would we be able to distribute and share? 16:15 – Panel: I understand that this is tiny – but why wouldn’t I just use the native features in specific the immutability component to it? 16:42 – Guest: I’m glad you asked that question. We wanted to answer the question... Guest: With microstates you can have strict control and it gives you the benefit of doing sophisticated things very easily. 18:33 – Guest: You mentioned immutability that’s good that you did. It’s important to capture – and capturing the naturalness of JavaScript. It’s easy to build complex structures – and there is an appeal to that. We are building these graphs and these building up these trees. You brought up immutability – why through it away b/c it’s the essence of being a developer. If you have 3-4-5 levels of nesting you have to de-structure – get to the piece of data – change it – and in your state transition 80% of your code is navigating to the change and only 20% to actually make the change. You don’t have to make that tradeoff. 21:25 – Aimee: The one thing I like about the immutability b/c of the way you test it. 21:45 – Guest: There a few things you can test. 23:01 – Aimee: You did a good job of explaining it. 23:15 – Guest: It makes the things usually hard easy! With immutability you can loose control, and if that happens you can get so confused. You don’t have a way to have a way to navigate to clarity. That’s what this does is make it less confusing. It gives you order and structure. It gives you a very clear path to do things you need to do. If there is a property on your object, and if there is a way to change it... 25:29 – Guest: The only constant is change no matter what framework you are working on. 24:46 – Chuck: We are talking about the benefits and philosophy. What if I have an app – and I realize I need state management – how do I put microstates into my app? It’s using Angular or React – how do I get my data into microstates? 26:35 – Guest: I can tell you what the integration looks like for any framework. You take a type and you passed that type and some value to the create function so what you get is a microstate. (The Guest continues diving into his answer.) 28:18 – Guest: That story is very similar to Redux, basically an event emitter. The state changes on the store. Maybe this is a good time to talk about the stability benefits and the lazy benefits because microstates is both of those things. Stability – if I invoke a transition and the result is unchanged – same microstate – it doesn’t emit an event. It recognizes it internally. It will recognize that it’s the same item. Using that in Ember or Redux you’d have to be doing thousands of actions and doing all that computation, but stability at that level. Also, stability in the sense of a tree. If I change one object then that changes it won’t change an element that it doesn’t need to change. 31:33 – Advertisement: Sentry.io 32:29 – Guest: I want to go back to your question, Chuck. Did we answer it? 32:40 – Chuck: Kind of. 32:50 – Guest. 32:59 – Guest: In Angular for example you can essentially turn a microstate... 33:51 – Guest: You could implement a connect, too. Because the primitive is small – there is no limit. 34:18 – Chuck summarizes their answers into his own words. 34:42 – Guest: If you were using a vanilla React component – this dot – I will bind this. You bind all of these features and then you pass them into your template. You can take it as a property...those are those handlers. They will perform the transition, update and what needs to be updated will happen. 35:55 – Chuck: Data and transitions are 2 separate things but you melded them together to feel like 1 thing. This way it keeps clean and fast. 36:16 – Guest: Every framework helps you in each way. Microstates let’s you do a few things: the quality of your data all in one place and you can share. 38:12 – Guest: He made and integrated Microstates with Redux tools. 38:28 – Guest talks about paths, microstates to trees. 39:22 – Chuck. 39:25 – Panel: When I think about state machines I have been half listening / half going through the docs. When I think of state machines I think about discreet operations like a literal machine. Like a robot of many steps it can step through. We have been talking about frontend frameworks like React - is this applicable to the more traditional systems like mechanical control or is it geared towards Vue layered applications? 40:23 – Guest: Absolutely. We have BIG TEST and it has a Vue component. 41:15 – Guest: when you create a microstate from a type you are creating an object that you can work with. 42:11 – Guest: Joe, I know you have experience with Angular I would love to get your insight. 42:33 – Joe: I feel like I have less experience with RX.js. A lot of what we are talking about and I am a traditionalist, and I would like you to introduce you guys to this topic. From my perspective, where would someone start if they haven’t been doing Flux pattern and I hear this podcast. I think this is a great solution – where do I get started? The official documents? Or is it the right solution to that person? 43:50 – Guest: Draw out the state machine that you want to represent in your Vue. These are the states that this can be in and this is the data that is required to get from one thing to the other. It’s a rope process. The arrow corresponds to the method, and... 44:49 – Panel: It reminds me back in the day of rational rows. 44:56 – Guest: My first job we were using rational rows. 45:22 – Panelist: Think through the state transitions – interesting that you are saying that. What about that I am in the middle – do you stop and think through it or no? 46:06 – Guest: I think it’s a Trojan horse in some ways. I think what’s interesting you start to realize how you implement your state transitions. 48:00 – (Guest continues.) 48:45 – Panel: That’s interesting. Do you have that in the docs to that process of stopping and thinking through your state transitions and putting into the microstate? 49:05 – Guest: I talked about this back in 2016. I outlined that process. When this project was in the Ember community. 49:16 – Guest: The next step for us is to make this information accessible. We’ve been shedding a few topics and saying this is how to use microstates in your project. We need to write up those guides to help them benefit in their applications. 50:00 – Chuck: What’s the future look like? 50:03 – Guest: We are working on performance profiling. Essentially you can hook up microstates to a fire hose. The next thing is settling on a pattern for modeling side effects inside microstates. Microstates are STATE and it’s immutable. 52:12 – Guest: Getting documentation. We have good README but we need traditional docs, too. 52:20 – Chuck: Anything else? 52:28 – Guest: If you need help email us and gives us a shot-out. 53:03 – Chuck: Let’s do some picks! 53:05 – Advertisement for Charles Max Wood’s course! Links: Kendo UI Frontside Redux Microstates Microstates with React Taras Mankovski’s Twitter Taras Mankovski’s GitHub Taras Mankovski’s LinkedIn Taras Mankovski’s Frontside Bio Charles Lowell’s Twitter Charles Lowell’s GitHub Charles Lowell’s Frontside Bio Schedule Once Ruby on Rails Angular Get A Coder Job YouTube Talks Email: cowboyd@frontside.io Working with State Machines Twitch TV BigTest Close Brace REEF The Developer Experience YouTube Video Sponsors: Kendo UI Sentry.io – 2 months free – DEVCHAT/code Get A Coder Job Picks: Aimee ShopTalk Episode 327 Professional JavaScript for Web Developers Technical Debt Stripe Taras Twitch Channel Big Test Frontside Charles Lowell Chalkboards Sargent Art Chalk Chris Close Brace LaCroix Water Chris’s Git Hub Joe The Developer Experience Bait and Switch Good Bye Redux Recording Dungeon and Dragons AJ UtahJS Conf Start with Why The Rust Book VanillaJS w/ Chris Zero to One Charles Podwrench.com - beta getacoderjob.com
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Genadi Samokovarov In this episode of Ruby Rogues, the panel talks with Genadi Samokovarov who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at GitHub and his mixes on SoundCloud. Finally, he blogs about technology that he cares about. Check-out his post about a curious Proc.new case in Ruby. If you are interested in his work experience, check out his resume here. Send Genadi an email or follow his social links. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:30 – Chuck: Introduce yourself please. 1:39 – The guest talks about his background and the company he works for. 2:03 – Chuck: Did you build the web console or something else? 2:05 – Guest. 3:20 – Chuck: How do you run Ruby on the web console? 3:40 – Guest answers Chuck’s question. 4:13 – Chuck: The other question is about security concerns – you don’t want to run in production? 4:25 – Guest: No, you don’t want to do that. 4:31 – Chuck: Use at home - don’t use it on your work server. 5:15 – Panel: It’s one of those features that people overlook on Rails. You have to proactively add in a pack to launch in a web console in that particular view. A lot of times people will either throw away rays (ERB) and they are able to get the same thing but you can interact with the page w/o full rendering of the application. What I just mentioned what does a web console has a space for? 6:18 – Guest. 7:23 – Panel: What would happen – if I put a debugging code in my application and it got committed and shipped – what would happen? 7:46 – Guest answers. 8:24 – Chuck: When you deploy a production I don’t even know what this tag is? 8:33 – Guest. 9:10 – Chuck: Can I run it on Sinatra...or the other ones? 9:20 – Guest: If you make a bit of effort... 9:42 – Chuck: How does it pass things to the backend? 9:52 – Guest. 11:22 – Chuck: Let’s say you set this up and you would include the gem in the Rails app – I guess it comes by default. 11:36 – Guest. 11:58 – Panel: And if you want to embed it in a view in Rails? 12:05 – Guest. 12:06 – Chuck: That’s nice. 12:08 – Guest. 12:43 – Panel: I would think that would be the most exciting things. I know the views and how it’s included there is a little bit of a black box for me. I don’t know quite what is going on and that’s after many years of use. Being able to open the web console and see what’s going on and see what I was thinking. Sometimes when I have hard times with my code it’s because I didn’t understand the Rails way and how they organize things. So for me to take a look it dawns on me. 13:33 – Guest. 13:41 – Panel: I learned Rails on a laptop. I went to terminal mode only and I learned it really, really well. 14:21 – Guest. 14:27 – Panel: Can web console do a separate JavaScript app and then you have a Ruby API backend – can you use console any plugin to integrate with that? 15:00 – Guest. 16:20 – Panel: That’s really cool, and good note. When people are developing a gem they keep one type of Ruby or whatever. They don’t take into account that Ruby or the MRI or whatever they are using it’s cool that you are proactive keeping into account the different interpreters and it works across the platform. 16:56 – Guest: It’s a tricky business. 18:39 – Panel: So is this under active development or...? 18:45 – Guest. 18:53 – Chuck: What was the hardest part to put this together? 19:00 – Guest: Getting it to work! 19:09 – Chuck: Nope...just getting it to work. 19:15 – Guest. 20:43 – Panel: That’s something where I have been in situations where it has given back the Rails spec trace. Not the actual application – I have no idea how to debug it. Then I dig in deeper and find it’s in my application part. It is important to have that. 21:13 – Guest. 21:51 – Get A Coder Job! 22:15 – Chuck: Anything else or should we talk about the conference for a minute? 22:30 – Guest. 24:09 – Panel: So you are getting these conferences going – is there a healthy/strong Ruby following in Bulgaria, generally? 24:25 – Guest: We do Meetups. It’s pretty active and a healthy community. It’s not as strong as the States, but it’s strong. 25:26 – Panel: Nice. I find that it’s interesting – I was around with Ruby in 2004, and people have been using Ruby for a while and Rails was new. It’s fun to build an organization around that and empower people to do great things. It’s great to do work that are learning Ruby. 26:08 – Guest. 26:25 – Panel: So that’s one of my coworkers and got him using VS code and show people the light to make the switch. 26:50 – Chuck: I’ve already switched. 27:01 – Panel: We like our tools. 27:17 – Guest: I guess my people like VS code b/c it’s easier to maintain. 27:35 – Panel: Maybe my mind is so feeble-minded. 27:45 – Chuck: I turned on the EMAX for along time and turned on my EMAX in my KS code. I get the nice extras. I don’t feel like there are 10 zillion things to worry about. 28:12 – Guest. 28:21 – Panel: I think the key is the expressiveness – get it the ways I want 28:38 – Chuck: I just want to think of the fact that I am using code – and that’s a good thing. 28:54 – Guest. 29:04 – Panel: How many attendees did you have? 29:08 – Guest. 29:22 – Chuck: The conferences that I like to attend that have an attendance of 150, I like b/c it’s intimate. The larger conferences I feel lost in the crowd. It’s just different for me. 30:17 – Panel: It makes it easy to break into groups if the conference is small. 30:30 – Panel: There are so many things that the experts can teach and show to the beginners. They could teach me something that I didn’t know. It’s powerful b/c you’re talking about projects and get to know each other. 31:39 – Guest. 32:16 – Panel: One thing I like is that the attendees make a Slack channel, and the speaker can address that during the talk. Sometimes they get answered, but just in case. 32:40 – Chuck: Anything you’re working on now? 32:43 – Guest. 32:52 – Panel: Nice. 33:00 – Guest. 33:37 – Chuck: How can people find out about these different conferences? 33:50 – Guest: We have a Twitter account. 33:04 – Chuck: Let’s go to picks! 34:12 – Advertisement – Fresh Books! 41:31 – Cache Fly! Links: Get a Coder Job Course Ruby Ruby Motion Ruby on Rails Angular Ruby Issue Tracking System Libraries.io Balkan Ruby Partial Conf Chaos Group Genadi Samokovarov’s Twitter Genadi Samokovarov’s GitHub Genadi Samokovarov’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David Creative Quest by Quest Love The Rhythm in Everything Dave Dewalt Clamps Action Text Charles The Diabetes Code Keto Diet Endorsed Local Providers via Dave Ramsey Genadi Long Walk Freedom
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Genadi Samokovarov In this episode of Ruby Rogues, the panel talks with Genadi Samokovarov who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at GitHub and his mixes on SoundCloud. Finally, he blogs about technology that he cares about. Check-out his post about a curious Proc.new case in Ruby. If you are interested in his work experience, check out his resume here. Send Genadi an email or follow his social links. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:30 – Chuck: Introduce yourself please. 1:39 – The guest talks about his background and the company he works for. 2:03 – Chuck: Did you build the web console or something else? 2:05 – Guest. 3:20 – Chuck: How do you run Ruby on the web console? 3:40 – Guest answers Chuck’s question. 4:13 – Chuck: The other question is about security concerns – you don’t want to run in production? 4:25 – Guest: No, you don’t want to do that. 4:31 – Chuck: Use at home - don’t use it on your work server. 5:15 – Panel: It’s one of those features that people overlook on Rails. You have to proactively add in a pack to launch in a web console in that particular view. A lot of times people will either throw away rays (ERB) and they are able to get the same thing but you can interact with the page w/o full rendering of the application. What I just mentioned what does a web console has a space for? 6:18 – Guest. 7:23 – Panel: What would happen – if I put a debugging code in my application and it got committed and shipped – what would happen? 7:46 – Guest answers. 8:24 – Chuck: When you deploy a production I don’t even know what this tag is? 8:33 – Guest. 9:10 – Chuck: Can I run it on Sinatra...or the other ones? 9:20 – Guest: If you make a bit of effort... 9:42 – Chuck: How does it pass things to the backend? 9:52 – Guest. 11:22 – Chuck: Let’s say you set this up and you would include the gem in the Rails app – I guess it comes by default. 11:36 – Guest. 11:58 – Panel: And if you want to embed it in a view in Rails? 12:05 – Guest. 12:06 – Chuck: That’s nice. 12:08 – Guest. 12:43 – Panel: I would think that would be the most exciting things. I know the views and how it’s included there is a little bit of a black box for me. I don’t know quite what is going on and that’s after many years of use. Being able to open the web console and see what’s going on and see what I was thinking. Sometimes when I have hard times with my code it’s because I didn’t understand the Rails way and how they organize things. So for me to take a look it dawns on me. 13:33 – Guest. 13:41 – Panel: I learned Rails on a laptop. I went to terminal mode only and I learned it really, really well. 14:21 – Guest. 14:27 – Panel: Can web console do a separate JavaScript app and then you have a Ruby API backend – can you use console any plugin to integrate with that? 15:00 – Guest. 16:20 – Panel: That’s really cool, and good note. When people are developing a gem they keep one type of Ruby or whatever. They don’t take into account that Ruby or the MRI or whatever they are using it’s cool that you are proactive keeping into account the different interpreters and it works across the platform. 16:56 – Guest: It’s a tricky business. 18:39 – Panel: So is this under active development or...? 18:45 – Guest. 18:53 – Chuck: What was the hardest part to put this together? 19:00 – Guest: Getting it to work! 19:09 – Chuck: Nope...just getting it to work. 19:15 – Guest. 20:43 – Panel: That’s something where I have been in situations where it has given back the Rails spec trace. Not the actual application – I have no idea how to debug it. Then I dig in deeper and find it’s in my application part. It is important to have that. 21:13 – Guest. 21:51 – Get A Coder Job! 22:15 – Chuck: Anything else or should we talk about the conference for a minute? 22:30 – Guest. 24:09 – Panel: So you are getting these conferences going – is there a healthy/strong Ruby following in Bulgaria, generally? 24:25 – Guest: We do Meetups. It’s pretty active and a healthy community. It’s not as strong as the States, but it’s strong. 25:26 – Panel: Nice. I find that it’s interesting – I was around with Ruby in 2004, and people have been using Ruby for a while and Rails was new. It’s fun to build an organization around that and empower people to do great things. It’s great to do work that are learning Ruby. 26:08 – Guest. 26:25 – Panel: So that’s one of my coworkers and got him using VS code and show people the light to make the switch. 26:50 – Chuck: I’ve already switched. 27:01 – Panel: We like our tools. 27:17 – Guest: I guess my people like VS code b/c it’s easier to maintain. 27:35 – Panel: Maybe my mind is so feeble-minded. 27:45 – Chuck: I turned on the EMAX for along time and turned on my EMAX in my KS code. I get the nice extras. I don’t feel like there are 10 zillion things to worry about. 28:12 – Guest. 28:21 – Panel: I think the key is the expressiveness – get it the ways I want 28:38 – Chuck: I just want to think of the fact that I am using code – and that’s a good thing. 28:54 – Guest. 29:04 – Panel: How many attendees did you have? 29:08 – Guest. 29:22 – Chuck: The conferences that I like to attend that have an attendance of 150, I like b/c it’s intimate. The larger conferences I feel lost in the crowd. It’s just different for me. 30:17 – Panel: It makes it easy to break into groups if the conference is small. 30:30 – Panel: There are so many things that the experts can teach and show to the beginners. They could teach me something that I didn’t know. It’s powerful b/c you’re talking about projects and get to know each other. 31:39 – Guest. 32:16 – Panel: One thing I like is that the attendees make a Slack channel, and the speaker can address that during the talk. Sometimes they get answered, but just in case. 32:40 – Chuck: Anything you’re working on now? 32:43 – Guest. 32:52 – Panel: Nice. 33:00 – Guest. 33:37 – Chuck: How can people find out about these different conferences? 33:50 – Guest: We have a Twitter account. 33:04 – Chuck: Let’s go to picks! 34:12 – Advertisement – Fresh Books! 41:31 – Cache Fly! Links: Get a Coder Job Course Ruby Ruby Motion Ruby on Rails Angular Ruby Issue Tracking System Libraries.io Balkan Ruby Partial Conf Chaos Group Genadi Samokovarov’s Twitter Genadi Samokovarov’s GitHub Genadi Samokovarov’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David Creative Quest by Quest Love The Rhythm in Everything Dave Dewalt Clamps Action Text Charles The Diabetes Code Keto Diet Endorsed Local Providers via Dave Ramsey Genadi Long Walk Freedom
Panel: Aimee Knight Charles Max Wood Joe Eames AJ O’Neil Chris Ferdinandi Special Guests: Charles Lowell (New Mexico) & Taras Mankovski (Toronto) In this episode, the panel talks with two special guests Charles and Taras. Charles Lowell is a principle engineer at Frontside, and he loves to code. Taras works with Charles and joined Frontside, because of Charles’ love for coding. There are great personalities at Frontside, which are quite diverse. Check out this episode to hear about microstates, microstates with react, Redux, and much more! Show Topics: 1:20 – Chuck: Let’s talk about microstates – what is that? 1:32 – Guest: My mind is focused on the how and not the what. I will zoom my mind out and let’s talk about the purposes of microstates. It means a few things. 1.) It’s going to work no matter what framework you are using. 2.) You shouldn’t have to be constantly reinventing the wheel. React Roundup – I talked about it there at this conference. Finally, it really needs to feel JavaScript. We didn’t want you to feel like you weren’t using JavaScript. It uses computer properties off of those models. It doesn’t feel like there is anything special that you are doing. There are just a few simple rules. You can’t mutate the state in place. If you work with JavaScript you can use it very easily. Is that a high-level view? 7:13 – Panel: There are a lot of pieces. If I spoke on a few specific things I would say that it enables programming with state machines. 7:42 – Panel: We wanted it to fell like JavaScript – that’s what I heard. 7:49 – Aimee: I heard that, too. 7:59 – Guest. 8:15 – Aimee: Redux feels like JavaScript to me. 8:25 – Guest: It’s actually – a tool – that it feels natural so it’s not contrived. It’s all JavaScript. 8:49 – Panel. 9:28 – Guest: Idiomatic Ember for example. Idiomatic in the sense that it gives you object for you to work with, which are simple objects. 10:12 – Guest: You have your reducers and your...we could do those things but ultimately it’s powerful – and not action names – we use method names; the name of the method. 11:20 – Panel: I was digging through docs, and it feels like NORMAL JavaScript. It doesn’t seem like it’s tied to a certain framework or library platform? 11:45 – Guest: Yes, we felt a lot of time designing the interfaces the API and the implementation. We wanted it to feel natural but a tool that people reach for. (Guest continues to talk about WHY they created microstates.) Guest: We wanted to scale very well what you need when your needs to change. 13:39 – Chuck: I have a lot of friends who get into React and then they put in Redux then they realize they have to do a lot of work – and that makes sense to do less is more. 14:17 – Guest: To define these microstates and build them up incrementally...building smaller microstates out of larger ones. Guest continued: Will we be able to people can distribute React components a sweet array of components ready for me to use – would I be able to do the same for a small piece of state? We call them state machines, but ultimately we have some state that is driving it. Would we be able to distribute and share? 16:15 – Panel: I understand that this is tiny – but why wouldn’t I just use the native features in specific the immutability component to it? 16:42 – Guest: I’m glad you asked that question. We wanted to answer the question... Guest: With microstates you can have strict control and it gives you the benefit of doing sophisticated things very easily. 18:33 – Guest: You mentioned immutability that’s good that you did. It’s important to capture – and capturing the naturalness of JavaScript. It’s easy to build complex structures – and there is an appeal to that. We are building these graphs and these building up these trees. You brought up immutability – why through it away b/c it’s the essence of being a developer. If you have 3-4-5 levels of nesting you have to de-structure – get to the piece of data – change it – and in your state transition 80% of your code is navigating to the change and only 20% to actually make the change. You don’t have to make that tradeoff. 21:25 – Aimee: The one thing I like about the immutability b/c of the way you test it. 21:45 – Guest: There a few things you can test. 23:01 – Aimee: You did a good job of explaining it. 23:15 – Guest: It makes the things usually hard easy! With immutability you can loose control, and if that happens you can get so confused. You don’t have a way to have a way to navigate to clarity. That’s what this does is make it less confusing. It gives you order and structure. It gives you a very clear path to do things you need to do. If there is a property on your object, and if there is a way to change it... 25:29 – Guest: The only constant is change no matter what framework you are working on. 24:46 – Chuck: We are talking about the benefits and philosophy. What if I have an app – and I realize I need state management – how do I put microstates into my app? It’s using Angular or React – how do I get my data into microstates? 26:35 – Guest: I can tell you what the integration looks like for any framework. You take a type and you passed that type and some value to the create function so what you get is a microstate. (The Guest continues diving into his answer.) 28:18 – Guest: That story is very similar to Redux, basically an event emitter. The state changes on the store. Maybe this is a good time to talk about the stability benefits and the lazy benefits because microstates is both of those things. Stability – if I invoke a transition and the result is unchanged – same microstate – it doesn’t emit an event. It recognizes it internally. It will recognize that it’s the same item. Using that in Ember or Redux you’d have to be doing thousands of actions and doing all that computation, but stability at that level. Also, stability in the sense of a tree. If I change one object then that changes it won’t change an element that it doesn’t need to change. 31:33 – Advertisement: Sentry.io 32:29 – Guest: I want to go back to your question, Chuck. Did we answer it? 32:40 – Chuck: Kind of. 32:50 – Guest. 32:59 – Guest: In Angular for example you can essentially turn a microstate... 33:51 – Guest: You could implement a connect, too. Because the primitive is small – there is no limit. 34:18 – Chuck summarizes their answers into his own words. 34:42 – Guest: If you were using a vanilla React component – this dot – I will bind this. You bind all of these features and then you pass them into your template. You can take it as a property...those are those handlers. They will perform the transition, update and what needs to be updated will happen. 35:55 – Chuck: Data and transitions are 2 separate things but you melded them together to feel like 1 thing. This way it keeps clean and fast. 36:16 – Guest: Every framework helps you in each way. Microstates let’s you do a few things: the quality of your data all in one place and you can share. 38:12 – Guest: He made and integrated Microstates with Redux tools. 38:28 – Guest talks about paths, microstates to trees. 39:22 – Chuck. 39:25 – Panel: When I think about state machines I have been half listening / half going through the docs. When I think of state machines I think about discreet operations like a literal machine. Like a robot of many steps it can step through. We have been talking about frontend frameworks like React - is this applicable to the more traditional systems like mechanical control or is it geared towards Vue layered applications? 40:23 – Guest: Absolutely. We have BIG TEST and it has a Vue component. 41:15 – Guest: when you create a microstate from a type you are creating an object that you can work with. 42:11 – Guest: Joe, I know you have experience with Angular I would love to get your insight. 42:33 – Joe: I feel like I have less experience with RX.js. A lot of what we are talking about and I am a traditionalist, and I would like you to introduce you guys to this topic. From my perspective, where would someone start if they haven’t been doing Flux pattern and I hear this podcast. I think this is a great solution – where do I get started? The official documents? Or is it the right solution to that person? 43:50 – Guest: Draw out the state machine that you want to represent in your Vue. These are the states that this can be in and this is the data that is required to get from one thing to the other. It’s a rope process. The arrow corresponds to the method, and... 44:49 – Panel: It reminds me back in the day of rational rows. 44:56 – Guest: My first job we were using rational rows. 45:22 – Panelist: Think through the state transitions – interesting that you are saying that. What about that I am in the middle – do you stop and think through it or no? 46:06 – Guest: I think it’s a Trojan horse in some ways. I think what’s interesting you start to realize how you implement your state transitions. 48:00 – (Guest continues.) 48:45 – Panel: That’s interesting. Do you have that in the docs to that process of stopping and thinking through your state transitions and putting into the microstate? 49:05 – Guest: I talked about this back in 2016. I outlined that process. When this project was in the Ember community. 49:16 – Guest: The next step for us is to make this information accessible. We’ve been shedding a few topics and saying this is how to use microstates in your project. We need to write up those guides to help them benefit in their applications. 50:00 – Chuck: What’s the future look like? 50:03 – Guest: We are working on performance profiling. Essentially you can hook up microstates to a fire hose. The next thing is settling on a pattern for modeling side effects inside microstates. Microstates are STATE and it’s immutable. 52:12 – Guest: Getting documentation. We have good README but we need traditional docs, too. 52:20 – Chuck: Anything else? 52:28 – Guest: If you need help email us and gives us a shot-out. 53:03 – Chuck: Let’s do some picks! 53:05 – Advertisement for Charles Max Wood’s course! Links: Kendo UI Frontside Redux Microstates Microstates with React Taras Mankovski’s Twitter Taras Mankovski’s GitHub Taras Mankovski’s LinkedIn Taras Mankovski’s Frontside Bio Charles Lowell’s Twitter Charles Lowell’s GitHub Charles Lowell’s Frontside Bio Schedule Once Ruby on Rails Angular Get A Coder Job YouTube Talks Email: cowboyd@frontside.io Working with State Machines Twitch TV BigTest Close Brace REEF The Developer Experience YouTube Video Sponsors: Kendo UI Sentry.io – 2 months free – DEVCHAT/code Get A Coder Job Picks: Aimee ShopTalk Episode 327 Professional JavaScript for Web Developers Technical Debt Stripe Taras Twitch Channel Big Test Frontside Charles Lowell Chalkboards Sargent Art Chalk Chris Close Brace LaCroix Water Chris’s Git Hub Joe The Developer Experience Bait and Switch Good Bye Redux Recording Dungeon and Dragons AJ UtahJS Conf Start with Why The Rust Book VanillaJS w/ Chris Zero to One Charles Podwrench.com - beta getacoderjob.com
Panel: Joe Eames John Papa Eric Dietrich Special Guest: Peter Mbanugo In this episode, the panel talks with Peter Mbanugo who is a software developer, tech writer, and maker of Hamoni Sync. He currently works with Field Intelligence, where he helps build logistic and supply chain apps. He also gets involved in design research and customer support for these products. He's also a contributor to Hoodie and a member of the Offline-First community. You can follow him on Twitter. Show Topics: 0:00 – Advertisement – Kendo UI 1:12 – Eric: You, Peter, write a really interesting article. How did you come to write that blog? Tell me about yourself. 1:29 – (Peter talks about his blog and his current projects.) 2:18 – Eric: Tell us about the blog! 2:25 – Peter: I talk about real-time synchronization and why you need it for data. You can use the websocket API and other applications. 3:29 – Panel: Let’s take a step back. It could be helpful to know: what problem were you trying to solve with real-time data? 4:14 – Panel: So multiple client browsers? You are editing in one browser and the data is showing up in the other? You mentioned websockets and others – could you talk about WHY you didn’t go with the other ones? 4:45 – (Peter answers the question.) 6:08 – Panel: So you created Hamoni Sync, and when did you start it? 6:20 – Peter: Yes, and I wrote it in March. I used real-time systems. 6:52 – Panel: What does it mean? 6:55 – (Peter answers.) 7:07 – Panel: Looks like it’s reasonably priced, too. 7:33 – Panel: Let me ask you this. How easy is it to get up and running using this on a Vue project? 7:45 – Peter. 8:34 – Panel: You have to install through your dashboard, then... 8:46 – Peter. 8:53 – Panel: You mentioned earlier that you shouldn’t websocket API right now? 9:04 – Peter: Not all users would have a browser that would support that. 9:39 – Panel: Hamoni handles all of that for you, which is nice. So it has a simple API to use. You started in March – is this your fulltime job...or? 10:08 – Peter: I started a new job 2 months ago, so now it’s part-time. 10:20 – Panel: You can use with any JavaScript library? 10:24 – Peter. 10:31 – Panel: Why did you do a tutorial in Vue and not in Angular or React? 10:37 – Peter: I do have one in React, and then... 10:54 – Panel: How do you like Vue so far? 10:55 – Peter. 11:15- Panel: The simplicity of Vue and you can take an older app and you can switch it over and not worry about jQuery and just go from there. Angular one days and instead of Angular 2+ or 6 now – Vue is an easy upgrade transition for sure. 11:47 – Peter. 11:51 – Panel: Walk us through how an app would work with this? 12:09 – Peter: When you connect you... 12:40 – Panel: What server is the data going to? 12:46 – Peter. 12:51 – Peter: I have a cloud service. 13:00 – Panel: How do they still get performance if there are a lot of people on at the same time? 13:06 – Peter. 13:17 – Panel: It handles all of the scaling? 13:23 – (Panelist walks through the process.) 13:44 – Peter: No scaling issues, yet. 14:05 – Peter: I haven’t launched, yet, through Product Hunt. 14:20 – Peter: The plan is to do that next month or middle of next month? 14:33 – Panel: Maybe once this podcast launches – that’s cool. What other apps can use real-time? Like a chat room is obvious when they are learning with socket IO. Is this beyond Vue? 15:07 – Peter: Yeah, in general it could be used for real-time chat applications and... 15:21 – Panel: Stock market updates? 15:28 – Peter: Yes. No, not animals. Maybe games for multi-player games. For chat room application. 18:45 – Panel: Demopuppy.com 19:11 – Advertisement – Get A Coder Job! 20:00 – Peter: Related to the blog we have covered it well. Why you would use real-time and the different ways you can do it with websocket. 20:23 – Panel: You are in Nigeria? 20:24 – Peter: Yes. 20:27 – Panel: How is Vue.js in Nigeria – do you have Meetups? 20:44 – Peter: I think the tech scene is doing quite well. Mainly Angular and others use other frameworks. 22:08 – Panel: Conference and asking for people to contribute? (Yes.) That sounds great for an active community. Getting hard jobs in tech is hard but maybe hard in specific places. 22:39 – Peter: It is great the great one for React b/c of the popularity in React. React or Angular; one of the two. 23:12 – Panel: If you know your stuff you are good to go? 23:19 – Peter: Yes. Microsoft’s .NET is quite stable. 23:37 – Panel: You are starting a startup is that common in Nigeria? 23:49 – Peter: The startup is small actually. 24:37 – Panel: Are you in the capitol? (Yes.) There is a misconception there that people think you have to be in the California or bay area, and you can see that it’s not true. You can create cool things no matter where you are! 25:08 – Peter: It’s great to see the diversity. 25:14 – Panel: I think it’s cool what you are doing. I am glad you wrote an article. What is HospitalRun? 25:42 – Peter: It’s a hospital management system to work offline first. To use them in remote areas where there is no connectivity. 27:08 – Panel: It’s an opensource project – Hospital.io. You are more the maintainer of the frontend right? 28:05 – Peter: Yes. 28:11 – Panel: A lot of hospitals are using this and need contributors and if you want to have a real difference check it out. What do you do as the maintainer are you reviewing code requests? 28:40 – Peter. 28:56 – Panel: Ember.js? 29:00 – Peter: No, I am being dumped into Ember into the deep-end. 29:20 – Panel: I think we are going to go to our picks now? How can 29:30 – Peter: Twitter and email. Check out the show notes! 29:50 – Panel: Picks! 29:58 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React Angular JavaScript DevChat TV Can I Use Websocket? Demopuppy.com HospitalRun.io What are the best tools for automating social media growth? Peter Mbanugo’s Twitter Peter Mbanugo’s Email: p.mbanugo@yahoo.com Peter’s blogs Vue Mastery Hoodie Meetups Hamoni Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe Dungeon and Dragons recordings coming soon on YouTube Blog - Good Bye Redux John Talk like a pirate day I Can Use Product Hunt Vue Mastery Peter Hoodie Vue Dev Tools Ego is the Enemy Eric Halt and Catch fire Vue.JS in Action
Panel: Charles Max Wood Chris Fritz Divya Sasidharan Joe Eames John Papa Special Guest: Mike Hartington and Michael Tintiuc In this episode, the panel talks with Mike and Michael who are developers of Ionic. The panel and the guests talk about the ins-and-outs of the framework and talk about the pros and cons, too. Listen to today’s episode to hear how they discuss how Ionic is compatible with Vue and Angular. Finally, they talk about various topics, such as Cordova and Capacitor. Show Topics: 1:19 – Mike H. gives his background. He uses JavaScript every day. 1:30 – Michael T. gives his background. 1:53 – Chuck: Yes, today we are talking about Ionic. Why are we talking about that on a Vue Podcast? 2:08 – Let’s talk about what Ionic is first? 2:16 – Guest gives us the definition / background of what IONIC is. 2:32 – Guest: We have been tied to Angular (back in the day), which were Ember and jQuery bindings. We have come a far way. (He talks about web components.) Guest: We spent a year diving into web components and interweaving that with Angular. Now we are exploring other framework options. Now we are looking at Ionic with Vue. 3:34 – Chuck: I have played with Ionic, and it’s fairly to use. It’s exciting to see it come this way. I’m curious what does that look like b/c Angular and Vue aren’t the same. 4:10 – Guest explains and answers Chuck’s question. 4:50 – Chuck: Is it like using...under the hood? 4:58 – Guest: No. (He goes into detail.) 5:08 – I didn’t know that Stencil was built by that team. 5:19 – Guest: We built a 2nd project. 5:28 – Guest: There are 24 hours in a day. 5:39 – Panel: How is Ionic different than other options? 5:59 – Guest: It’s comparable to Frameworks 7. The components that you generate are all web0based. The component that you put in is the same for the web or Android. You can have 100% code reuse. 6:35 – Panel: It’s actual CSS? 6:41 – Guest: It’s full-blown CSS. If you wanted to do CSS animations then whatever the browser can support. 6:56 – Panel: Advantages or disadvantages? 7:04 – Guest: It’s easier to maintain. If you are making the next Photo Shop...(super heavy graphics) maybe web and web APIs aren’t the right way to go. 8:23 – You have access to less intense stuff? 8:34 – Guest: Yes. 8:39 – Question. 8:46 – Guest: 2 different approaches to this. 1 approach is CORDOVA and the other is CAPACITOR. 9:42 – Anything that has been built with Ionic? 9:47 – Guest: App called Untapped? Or the fitness app, SWORKIT! MarketWatch is another one. We have a whole showcase page that you can check out. 10:57 – Few apps out there that use Ionic for everything. 11:06 – Panel: I have done work with Ionic in the past. I found a sweet spot for business apps. There are things behind enterprise walls that customers can use but necessarily others. We have decided to go native and found that Ionic wasn’t a good fit. How do you feel? 11:51 – Guest: We do hear that a lot. People want to make a quick app and then... 12:20 – Panel: We chose Ionic in this project b/c we had to get it out in less than 6 weeks and the team knew JavaScript. Nobody knew Ionic besides me. After that, nothing broke and that’s a huge praise. 12:55 – Guest: I will take that good praise. 13:01 – Panel: How is it used with Vue? 13:07 – Guest: The Vue work that we’ve been doing...here are the core components. Recently we have been working with Michael and integration. They have been working on opensource. 13:45 – Michael: It was one of the first apps in Beta and Vue. It all started out as a passionate project for the opensource initiative. We wanted to build something new and use the emerging Vue.js. At the time I had no idea. It sounded cool, though, and at the time I wrote a small CUI program. I decided to make an app out of that. I wanted to meet the clients’ needs and the new tech. I went online and I saw some tutorials and I thought they had figured it out. I thought we were screwed but I guess not. Most of the things are out of the box. But the problem is that the routing was sketchy and it wouldn’t update the URL and it had to be delegated to the framework. The app is called BEEP. I cannot disclose what it means. Joking. I added to the state that everything... I tore through the screen to figure out how it works. Then it clicked. You have to extend the Vue’s official router...and then you’re done. You do a MPM install and then you call a couple of APIs and then you are done. Not even a single line of code. You have Ionic’s out of the box animations, and in our app we have a dancing... You spend a week and you’re done so I won’t use anything else. 17:35 – Panel: That’s an impressive turnaround! 17:42 – Panel: It just goes to show you that the code in Vue is so approachable to anyone. If you know a little bit of JavaScript then you know what is kind of going on. It’s pretty clean. Especially the Vue Router. 18:11 – Panel: Vue Core – some parts that can be hairy. 18:43 – We are component authors. We just need to know here is a component and here are some methods that it needs to know. 19:04 – Oh yeah, totally – I was talking more about... 19:14 – That’s what I thought for those 2 weeks cause I was looking at... 19:24 – Chuck: How do you get the Vue stuff in that and not the Angular? 19:41 – Guest answers the question. 20:20 – Panel: What was the hardest part to integrate? 20:28 – Michael: I wrote my own router. It was too much for me to write. I thought it was going to take me ages. So it took the longest to come to the idea to extending Vue’s router. I thought writing less code is the best. It took me 2 weeks to come to that conclusion. It was related to how... 22:21 – Question. 22:28 – Michael: You can use Vue router like if you used a different package. 22:40 – Panel: It is using the other router history or if you are using Hash API; since it’s all web technology? 23:03 – Guest: People don’t see the URL. 23:10 – We can teach them to pass... 23:25 – Panel: I have been interested in Ionic...when you sprinkle in some native stuff. Local databases. Getting that wasn’t too bad to work. The trick was testing that. 24:04 – Guest: A lot of manual work, unfortunately. It’s a lot of set-up work. You can do test functions but actually have that end-to-end test...can I make sure that is working correctly? A lot of manual testing. There are some cloud base platforms but I haven’t checked them out for an easier way. 25:06 – It was an Ionic issue it was... I think some of the Cloud services to better nowadays. 25:25 – Guest: It was painful to get it setup. Why do I need Clouds? 25:42 – Advertisement – Get A Coder Job! 26:19 – Let’s talk about native features. How does one do that in Vue? 26:29 – Guest talks about Vue, Capacitor, and Cordova. 27:27 – Guest: Let’s talk back to the Beep app. Lots of this stuff is really easy, as Mike was saying. That’s what I like to do – being a both a developer and a library writer. 28:00 – Panel: Imagine Slash from Guns and Roses. 28:14 – Chuck: They get this idea that it’s Java so I can share. Chuck asks a question. 28:30 – Guest: All of it. You might want to change some of the UIs. If it looks good on mobile then you can adapt that as the main app and swap that out for the traditional designs and something else. 29:03 – Panel: I can’t just drop in the same dibs for my styles on my desktop and magically look like a mobile app. 29:23 – Guest: That’s where you are wrong. Ionic does this really well. We have painstakingly made this be a thing. The guest talks about screen width, layouts, and other topics. 30:10 – Guest: It’s the same code. 30:18 – Panelist gives a hypothetical situation for the guests. 30:36 – Guest answers the question. Guest: You will have to refactor from desktop to mobile. 31:54 – Chuck. 32:10 – Michael: It’s about continuity. 32:39 – Panel: Building a Vue app we can use the Ionic Vue project to reuse that work that you did to get that back button working. 32:59 – Michael: That’s the whole point. So you guys don’t even have to think about it. So you don’t have to fiddle around with bugs. 33:17 – Panelist. 33:22 – Michael. 33:33 – Mike: Eventually we want to do a full fledge Vue project they just install Ionic Vue and it will integrate the package. 33:55 – Michael: You use the UPI and that’s it. 34:03 – Panel: Beyond the hardcore 3D sky room games are there any other reasons why I wouldn’t want to use Ionic? 34:30 – Mike: I can’t think of anything. More important question is what is your team’s experience? I wouldn’t go to a bunch of C+ devs and say: Here ya go! I wouldn’t do that. You have to figure out the team that knows Java and they don’t know native, so they will be able to reuse those skills. 35:25 – Panel: I am wondering if there is anything technically impossible because of the way Ionic works? 36:00 – Guest: If there are, I haven’t seen it, yet. There are 20,000,000 downloads so far, so I don’t think so. 36:28 – Panel: When people report an issue what do they complain about? 36:39 – Guest: Being a couple pixels off (CSS), API signatures, etc. We are seeing fewer issues on the... People are looking at functionality issues. Whenever there are issues we take care of it right away. 37:26 – Panelist asks a question. 37:32 – It’s really done well. 37:46 – Panel: Are people able to drop that into an Ionic app? 38:09 – Guest: I haven’t tried that, yet. 38:20 – Panel: I have another question: How big are Ionic apps compared to other native apps. When you are using C+ or writing in Java or Swift. 39:09 – Guest: Twitter native was a couple 100 MB app. But the apps built with Ionic are 50 MB category. They can be small or full native apps with plugins. 40:00 – Panel: Does that mean that in some cases users will have to be connected to the Internet to use the app? 40:29 – Guest answers. 41:02 – Guest: I have some good news for you all. (Guest goes into detail.) 41:39 – Chuck. 41:44 – Guest: Another comparison is my app I use for my Home Goods store is 80 MB and it’s not doing a whole lot. 42:21 – Chuck: Let’s talk data for a minute. You can get large that way if you are DL files through the app – how do you manage memory? 42:42 – Guest: That is run by the browser run-time. Sometimes too good of a job. When you are doing production cases your... 43:27 – Panel: Do you have access to Sequel Light or do you have to use in-browser storage? 43:27 – Guest: Either one. 44:16 – Sequel Light. 44:20 – Guest. 44:24 – Within Ionic you can use Sequel Light there is a plugin. 44:55 – Panelist comments. 45:23 – Michael: I want to add some clarification. You can write your own propriety files... 45:23 – I like that it sounds like it’s different than other frameworks. Instead of there being a framework way to do it there is a lot of different pieces you can plugin to different parts that is agnostic to Ionic. 46:10 – Guest talks about batteries included. 46:42 – Panel: I really like that b/c it’s the Vue approach, too. 47:21 – The guest talks about transitions. 48:07 – Chuck: If I get stuck what is the community around it? 48:25 – Guest: It’s still early right now. If you went to the code base you wouldn’t see much. We are working on the code getting into the package. The good thing is that the way it’s structure, once their APIs are set then it’s the same through Angular and Vue. Once you have that API set it’s the same thing between those 3 things. 49:13 – Guest: Let me blow your minds guys... There are 7 controllers and 99% you would go to the Ionic site. The rest is identical and that’s the cool part. If you are coming from Angular you can reuse a lot of that knowledge. 50:00 – Panel: If they wanted to build an app right now what would you recommend as their first step? 50:16 – Guest: Ionic and Vue – check out the docs and the components overviews to see what the vanilla components are like. 50:52 – Panel: Is there an example repo? 50:59 – Guest: That would be the BEEP app. 51:08 – Panel: Vue specific docs? 51:18 – Guest: Files that you can drop into your browser. 51:27 – Panel: How soon is soon? 51:31 – Guest: Most likely within the next few months. Final touches that we want to complete. 52:11 – Chuck: What about testing? 52:17 – Guest: Same way you would test a Vue app there is nothing specific for Ionic (at least for the unit tests). If you are doing integration tests that would work the same way in typical Vue setup the only quirks are... 52:56 – Question: Does Ionic offer a collection of mocks for APIs? 53:11 – Guest: Yes, but just for Angular. It’s the only framework to support. This is a good call for community members to contribute. 53:35 – Panel: Would that be a new repo for Vue? 53:44 – Guest: Contribute to the Ionic Teams’ Main Repository and open an issue – and Ping me. 54:02 – Twitter names are given. 54:13 – Panel: How do they reach you? 54:19 – Michael: My whole name slurred together. 54:39 – Panel: Anything else they should know? 54:46 – Guest: Ping us and we will get you working with Ionic. 54:54 – Guest: The cookbook examples are a good starting part. We work very hard with Ionic. 56:01 – Panel: If they have questions where should they post them – chat, or form? 56:20 – Guest: Yes, ask away – any questions. 56:41 – Panel: How do you make money? 57:00 – Guest: If you want to build the Android portion, but you don’t want to take the time, we have a hosted platform that will handle that for you. Help you create your build so you don’t have to create all of the native stuff. 57:29 – Picks! 57:35 – Chuck: I have more stuff to play with – dang it! I am happy to outsource to you, Chris! 58:00 – Sarcasm. 58:26 – Chuck: Thank you for sharing your stories, Michael and Mike! 58:38 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React Angular JavaScript DevChat TV Ionic – Vue Ionic Star Track Onsen UI Beep Have I been Pawned? Michael T.’s LinkedIn Mike H.’s Twitter Michael T.’s Twitter Sponsors: Fresh Books Cache Fly Kendo UI Picks: John NMP Library – DoteNV The 12 Factor App Divya Post by Sara S. Headspace – daily meditation Chris Library called CUID Library – MapBox Netflix – The Originals Chuck Friends of Scouting – good cause to give money Michael AIRBNB Lottie Steam Support Mike Blog Post – GitHub Integration Infinity War Joe Movie Peppermint Burn After Reading Goodbye Redux
Panel: Charles Max Wood Chris Fritz Divya Sasidharan Joe Eames John Papa Special Guest: Mike Hartington and Michael Tintiuc In this episode, the panel talks with Mike and Michael who are developers of Ionic. The panel and the guests talk about the ins-and-outs of the framework and talk about the pros and cons, too. Listen to today’s episode to hear how they discuss how Ionic is compatible with Vue and Angular. Finally, they talk about various topics, such as Cordova and Capacitor. Show Topics: 1:19 – Mike H. gives his background. He uses JavaScript every day. 1:30 – Michael T. gives his background. 1:53 – Chuck: Yes, today we are talking about Ionic. Why are we talking about that on a Vue Podcast? 2:08 – Let’s talk about what Ionic is first? 2:16 – Guest gives us the definition / background of what IONIC is. 2:32 – Guest: We have been tied to Angular (back in the day), which were Ember and jQuery bindings. We have come a far way. (He talks about web components.) Guest: We spent a year diving into web components and interweaving that with Angular. Now we are exploring other framework options. Now we are looking at Ionic with Vue. 3:34 – Chuck: I have played with Ionic, and it’s fairly to use. It’s exciting to see it come this way. I’m curious what does that look like b/c Angular and Vue aren’t the same. 4:10 – Guest explains and answers Chuck’s question. 4:50 – Chuck: Is it like using...under the hood? 4:58 – Guest: No. (He goes into detail.) 5:08 – I didn’t know that Stencil was built by that team. 5:19 – Guest: We built a 2nd project. 5:28 – Guest: There are 24 hours in a day. 5:39 – Panel: How is Ionic different than other options? 5:59 – Guest: It’s comparable to Frameworks 7. The components that you generate are all web0based. The component that you put in is the same for the web or Android. You can have 100% code reuse. 6:35 – Panel: It’s actual CSS? 6:41 – Guest: It’s full-blown CSS. If you wanted to do CSS animations then whatever the browser can support. 6:56 – Panel: Advantages or disadvantages? 7:04 – Guest: It’s easier to maintain. If you are making the next Photo Shop...(super heavy graphics) maybe web and web APIs aren’t the right way to go. 8:23 – You have access to less intense stuff? 8:34 – Guest: Yes. 8:39 – Question. 8:46 – Guest: 2 different approaches to this. 1 approach is CORDOVA and the other is CAPACITOR. 9:42 – Anything that has been built with Ionic? 9:47 – Guest: App called Untapped? Or the fitness app, SWORKIT! MarketWatch is another one. We have a whole showcase page that you can check out. 10:57 – Few apps out there that use Ionic for everything. 11:06 – Panel: I have done work with Ionic in the past. I found a sweet spot for business apps. There are things behind enterprise walls that customers can use but necessarily others. We have decided to go native and found that Ionic wasn’t a good fit. How do you feel? 11:51 – Guest: We do hear that a lot. People want to make a quick app and then... 12:20 – Panel: We chose Ionic in this project b/c we had to get it out in less than 6 weeks and the team knew JavaScript. Nobody knew Ionic besides me. After that, nothing broke and that’s a huge praise. 12:55 – Guest: I will take that good praise. 13:01 – Panel: How is it used with Vue? 13:07 – Guest: The Vue work that we’ve been doing...here are the core components. Recently we have been working with Michael and integration. They have been working on opensource. 13:45 – Michael: It was one of the first apps in Beta and Vue. It all started out as a passionate project for the opensource initiative. We wanted to build something new and use the emerging Vue.js. At the time I had no idea. It sounded cool, though, and at the time I wrote a small CUI program. I decided to make an app out of that. I wanted to meet the clients’ needs and the new tech. I went online and I saw some tutorials and I thought they had figured it out. I thought we were screwed but I guess not. Most of the things are out of the box. But the problem is that the routing was sketchy and it wouldn’t update the URL and it had to be delegated to the framework. The app is called BEEP. I cannot disclose what it means. Joking. I added to the state that everything... I tore through the screen to figure out how it works. Then it clicked. You have to extend the Vue’s official router...and then you’re done. You do a MPM install and then you call a couple of APIs and then you are done. Not even a single line of code. You have Ionic’s out of the box animations, and in our app we have a dancing... You spend a week and you’re done so I won’t use anything else. 17:35 – Panel: That’s an impressive turnaround! 17:42 – Panel: It just goes to show you that the code in Vue is so approachable to anyone. If you know a little bit of JavaScript then you know what is kind of going on. It’s pretty clean. Especially the Vue Router. 18:11 – Panel: Vue Core – some parts that can be hairy. 18:43 – We are component authors. We just need to know here is a component and here are some methods that it needs to know. 19:04 – Oh yeah, totally – I was talking more about... 19:14 – That’s what I thought for those 2 weeks cause I was looking at... 19:24 – Chuck: How do you get the Vue stuff in that and not the Angular? 19:41 – Guest answers the question. 20:20 – Panel: What was the hardest part to integrate? 20:28 – Michael: I wrote my own router. It was too much for me to write. I thought it was going to take me ages. So it took the longest to come to the idea to extending Vue’s router. I thought writing less code is the best. It took me 2 weeks to come to that conclusion. It was related to how... 22:21 – Question. 22:28 – Michael: You can use Vue router like if you used a different package. 22:40 – Panel: It is using the other router history or if you are using Hash API; since it’s all web technology? 23:03 – Guest: People don’t see the URL. 23:10 – We can teach them to pass... 23:25 – Panel: I have been interested in Ionic...when you sprinkle in some native stuff. Local databases. Getting that wasn’t too bad to work. The trick was testing that. 24:04 – Guest: A lot of manual work, unfortunately. It’s a lot of set-up work. You can do test functions but actually have that end-to-end test...can I make sure that is working correctly? A lot of manual testing. There are some cloud base platforms but I haven’t checked them out for an easier way. 25:06 – It was an Ionic issue it was... I think some of the Cloud services to better nowadays. 25:25 – Guest: It was painful to get it setup. Why do I need Clouds? 25:42 – Advertisement – Get A Coder Job! 26:19 – Let’s talk about native features. How does one do that in Vue? 26:29 – Guest talks about Vue, Capacitor, and Cordova. 27:27 – Guest: Let’s talk back to the Beep app. Lots of this stuff is really easy, as Mike was saying. That’s what I like to do – being a both a developer and a library writer. 28:00 – Panel: Imagine Slash from Guns and Roses. 28:14 – Chuck: They get this idea that it’s Java so I can share. Chuck asks a question. 28:30 – Guest: All of it. You might want to change some of the UIs. If it looks good on mobile then you can adapt that as the main app and swap that out for the traditional designs and something else. 29:03 – Panel: I can’t just drop in the same dibs for my styles on my desktop and magically look like a mobile app. 29:23 – Guest: That’s where you are wrong. Ionic does this really well. We have painstakingly made this be a thing. The guest talks about screen width, layouts, and other topics. 30:10 – Guest: It’s the same code. 30:18 – Panelist gives a hypothetical situation for the guests. 30:36 – Guest answers the question. Guest: You will have to refactor from desktop to mobile. 31:54 – Chuck. 32:10 – Michael: It’s about continuity. 32:39 – Panel: Building a Vue app we can use the Ionic Vue project to reuse that work that you did to get that back button working. 32:59 – Michael: That’s the whole point. So you guys don’t even have to think about it. So you don’t have to fiddle around with bugs. 33:17 – Panelist. 33:22 – Michael. 33:33 – Mike: Eventually we want to do a full fledge Vue project they just install Ionic Vue and it will integrate the package. 33:55 – Michael: You use the UPI and that’s it. 34:03 – Panel: Beyond the hardcore 3D sky room games are there any other reasons why I wouldn’t want to use Ionic? 34:30 – Mike: I can’t think of anything. More important question is what is your team’s experience? I wouldn’t go to a bunch of C+ devs and say: Here ya go! I wouldn’t do that. You have to figure out the team that knows Java and they don’t know native, so they will be able to reuse those skills. 35:25 – Panel: I am wondering if there is anything technically impossible because of the way Ionic works? 36:00 – Guest: If there are, I haven’t seen it, yet. There are 20,000,000 downloads so far, so I don’t think so. 36:28 – Panel: When people report an issue what do they complain about? 36:39 – Guest: Being a couple pixels off (CSS), API signatures, etc. We are seeing fewer issues on the... People are looking at functionality issues. Whenever there are issues we take care of it right away. 37:26 – Panelist asks a question. 37:32 – It’s really done well. 37:46 – Panel: Are people able to drop that into an Ionic app? 38:09 – Guest: I haven’t tried that, yet. 38:20 – Panel: I have another question: How big are Ionic apps compared to other native apps. When you are using C+ or writing in Java or Swift. 39:09 – Guest: Twitter native was a couple 100 MB app. But the apps built with Ionic are 50 MB category. They can be small or full native apps with plugins. 40:00 – Panel: Does that mean that in some cases users will have to be connected to the Internet to use the app? 40:29 – Guest answers. 41:02 – Guest: I have some good news for you all. (Guest goes into detail.) 41:39 – Chuck. 41:44 – Guest: Another comparison is my app I use for my Home Goods store is 80 MB and it’s not doing a whole lot. 42:21 – Chuck: Let’s talk data for a minute. You can get large that way if you are DL files through the app – how do you manage memory? 42:42 – Guest: That is run by the browser run-time. Sometimes too good of a job. When you are doing production cases your... 43:27 – Panel: Do you have access to Sequel Light or do you have to use in-browser storage? 43:27 – Guest: Either one. 44:16 – Sequel Light. 44:20 – Guest. 44:24 – Within Ionic you can use Sequel Light there is a plugin. 44:55 – Panelist comments. 45:23 – Michael: I want to add some clarification. You can write your own propriety files... 45:23 – I like that it sounds like it’s different than other frameworks. Instead of there being a framework way to do it there is a lot of different pieces you can plugin to different parts that is agnostic to Ionic. 46:10 – Guest talks about batteries included. 46:42 – Panel: I really like that b/c it’s the Vue approach, too. 47:21 – The guest talks about transitions. 48:07 – Chuck: If I get stuck what is the community around it? 48:25 – Guest: It’s still early right now. If you went to the code base you wouldn’t see much. We are working on the code getting into the package. The good thing is that the way it’s structure, once their APIs are set then it’s the same through Angular and Vue. Once you have that API set it’s the same thing between those 3 things. 49:13 – Guest: Let me blow your minds guys... There are 7 controllers and 99% you would go to the Ionic site. The rest is identical and that’s the cool part. If you are coming from Angular you can reuse a lot of that knowledge. 50:00 – Panel: If they wanted to build an app right now what would you recommend as their first step? 50:16 – Guest: Ionic and Vue – check out the docs and the components overviews to see what the vanilla components are like. 50:52 – Panel: Is there an example repo? 50:59 – Guest: That would be the BEEP app. 51:08 – Panel: Vue specific docs? 51:18 – Guest: Files that you can drop into your browser. 51:27 – Panel: How soon is soon? 51:31 – Guest: Most likely within the next few months. Final touches that we want to complete. 52:11 – Chuck: What about testing? 52:17 – Guest: Same way you would test a Vue app there is nothing specific for Ionic (at least for the unit tests). If you are doing integration tests that would work the same way in typical Vue setup the only quirks are... 52:56 – Question: Does Ionic offer a collection of mocks for APIs? 53:11 – Guest: Yes, but just for Angular. It’s the only framework to support. This is a good call for community members to contribute. 53:35 – Panel: Would that be a new repo for Vue? 53:44 – Guest: Contribute to the Ionic Teams’ Main Repository and open an issue – and Ping me. 54:02 – Twitter names are given. 54:13 – Panel: How do they reach you? 54:19 – Michael: My whole name slurred together. 54:39 – Panel: Anything else they should know? 54:46 – Guest: Ping us and we will get you working with Ionic. 54:54 – Guest: The cookbook examples are a good starting part. We work very hard with Ionic. 56:01 – Panel: If they have questions where should they post them – chat, or form? 56:20 – Guest: Yes, ask away – any questions. 56:41 – Panel: How do you make money? 57:00 – Guest: If you want to build the Android portion, but you don’t want to take the time, we have a hosted platform that will handle that for you. Help you create your build so you don’t have to create all of the native stuff. 57:29 – Picks! 57:35 – Chuck: I have more stuff to play with – dang it! I am happy to outsource to you, Chris! 58:00 – Sarcasm. 58:26 – Chuck: Thank you for sharing your stories, Michael and Mike! 58:38 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue React Angular JavaScript DevChat TV Ionic – Vue Ionic Star Track Onsen UI Beep Have I been Pawned? Michael T.’s LinkedIn Mike H.’s Twitter Michael T.’s Twitter Sponsors: Fresh Books Cache Fly Kendo UI Picks: John NMP Library – DoteNV The 12 Factor App Divya Post by Sara S. Headspace – daily meditation Chris Library called CUID Library – MapBox Netflix – The Originals Chuck Friends of Scouting – good cause to give money Michael AIRBNB Lottie Steam Support Mike Blog Post – GitHub Integration Infinity War Joe Movie Peppermint Burn After Reading Goodbye Redux
Panel: Charles Max Wood Mark Eriksen Eric Berry Special Guest: Andrew Summers In this episode of Elixir Mix, the panel talks to Andrew Summers who lives in Chicago, currently. Working on Elixir development, and here to talk about how he wrote the dialyzer pretty printer. He is a software engineer for Albert.io, makes cool stuff every day, loves punk music, and Philadelphia sports. The panel talks about the Dialyzer pretty printing, Elixir, code writing, and more! Show Topics: 1:07 – Why are you famous? 1:11 – Andrew: Answers the question. 1:34 – Chuck: Nice. Is the dialyzer printer complete pretty printing or is it more than that? 1:45 – Andrew talks. He mentions the background information on this specific printer, which was written a decade ago. 4:13 – Panel: One thing that is helpful is that it is a static code analysis. In the Elixir we are writing these spec statements. For nothing else than this type is coming out. Then this looks at the code, and your spec says you are returning this, but I can tell that you are also returning X, Y, or Z. So it is helping us see what we are declaring a code to do, and that’s really what the code is doing. 5:28 – Guest: Yes, exactly. To continue that topic here is what else it’s saying... 6:08 – Panel: Our panelist is not here, but he has had to fix code before with that problem. With Dialect Dialyzer – how do we say this library is out-of-date? The code is out-of-date. How do I get my stuff to pass – to clean up my site? 6:54 – Guest: Containing that warning. Guest goes into further detail how to problem-solve this issue. 8:02 – Panel: So you are saying that I can funnel. 8:20 – Panel & Guest go back-and-forth talking about this topic. 9:49 – Panel: I am still diving into the system. Haven’t really used the printer, yet. Panelist asks Guest a question. 10:04 – Guest: At the forefront there are some configurations to help with that. 11:16 – Panel: Why would someone not want to use this? What are the cons? 11:23 – Guest: It would have to do more with CI than anything (one con). 13:06 – Panel: Lots of people are coming to Elixir New. Great. What is the selling point? Why should someone invest his or her time in this project? 13:33 – Guest: I find looking for a type spec is one more piece of information that could help the reader that would tell them what the code should be doing. Any information from the original author to be passed down is great. Having the machine to check that, whenever you push code, it’s an imperfect check (as we were saying). If it can tell you that you did something wrong, then why not? It gives you that extra red flag. There are huge benefits to that. Same reason we write unit tests. 15:20 – Panel: You are learning Elixir right, Chuck? Panelist talks about tech specs, code writing, and learning projects. 16:25 – Panel: Here is a tip to learning. One thing that I did I came to an existing project and writing a sub-system ( as series of modules) Writing the tech specs. As they are interacting with each other, then writing Dial Elixir, and grab the output to the file path to where my code is. Within my own code find where I am inconsistent. Andrew – you could get pages of output, right? Any tips for users? 17:37 – Guest: Isolate portions of your code base. 19:27 – Chuck: I do like the idea of the umbrella. Phoenix app out into an umbrella. A sub apps and they are more centered, smaller sized. Then, yeah. Start with Dialyzer on just that project. Isolate it, and this app in the umbrella. The output is much smaller, and good success with that. Now, one of the new features you added was the language / the code that it reports is an ERLANG term. That is not familiar to most Elixir developers. Especially if you are new to it. If you are turning this into a friendly Elixir thing, then you had to learn other programs. How did you get into this path? 21:00 – Andrew: Whenever there was complicated “something” at work – I was the person to go to. As I started to do it more and more I saw patterns in the output. Things were kind of predictable, and how to format things. It synchronizes weird. What would I do to write this task? Researched. There are 2 tools = LEEX and YECC. If you have 2 files in your source directory... 22:56 – Advertisement – Digital Ocean 23:39 – Panel: It’s cool. 23:58 – Guest: It brought me back to some courses from school. I thought that was funny. They are pretty contained tools. 24:36 – Panel: Part of your motivation was from Jose. 24:49 – Guest: Yes, definitely. 25:39 – Did you have any questions for Jose? 26:35 – Panel: You added the feature of... CREDO is pretty well-known. 27:28 – Guest: Sure, I guess I did skip some of that. Andrew talked about different libraries, ERLANG modules, and so on. 28:38 – Panel: What else are you doing? 28:45 – Getting error messages fixed for version 1.0. Trying to close-up the residual things. 30:18 – Guest keeps talking about support and other bugs. Andrew: If you see something, say something. 31:00 - Panel: There are languages that run on the beam. Something to create something more standard so different languages can depend on. Is there anything like that? To help you with your tooling? 31:40 – Andrew: Good question! Some of the things that happen at the Dialyzer level, stuff just gets dropped. 33:47 – Guest: How this works all together... 35:15 – Chuck: How to contribute to Dialyxir? 35:30 – Guest: Around error messages – is the best place to look. If you have a good editor hand, good place for that. If you are further into the compiler land – might want to play with that. 36:29 – Guest: ERLEX 36:43 – Chuck: What did you learn about building these libraries? 36:55 – Guest: I learned a lot about the construction of Elixir. Guest dives into this more. 38:25 – Chuck: The principle that you cannot bind... 38:51 – Guest: ...this area of my code-base... it would be nice to turn off those features. When I really do need it – I need it, but not so if I don’t need it. 39:39 – Panel: I want to point someone to a resource: TypeSpecs. 39:54 – Guest: I used that so much! Wonderful resource, I learned so much stuff! I stole all the output from that. I didn’t know that language had that?! 40:20 – Panel chimes in about this resource some more. 41:02 – Guest: We really do have a simple language. There are some weird things, but not a lot of constructs under the hood. Only a few data structures. It could have been more complicated. I was worried about that – but that never happened, because... 41:41 – Panel: Thanks for adding that. Very true. 42:51 – Guest talks about other things that are very simple, too. 44:35 – Panel: Are you doing fulltime with Elixir for programming? 44:35 – Guest: Yes, we are using other Elixir and JS App. In another life I used... They all can teach you something. Sometimes the journey of going there and realizing WHY you don’t want to be there is sometimes worth the journey! 45:20 – Panel asks guest a question. 45:25 – Guest answers question. Andrew: We have enjoyed our time in Elixir. It’s nice. 46:27 – Panel: Anything else? 46:33 – Panel: Where can people find you online? 46:40 – Guest: Elixir Slack, Twitter, GitHub. 47:01 – Picks! 47:05 – Advertisement – Code Badges Links: Andrew Summers’ Twitter Credo Erlang Dialyxir LEEX YECC Credo ERLEX TypeSpecs Curated Dev News for Busy Developers EX_JSON_SCHEMA React – Jsonschema – form Announcing Distillery 2.0 Distillery’s documentation! MKDocs EX_Json_Schema Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Eric Chrome Extension for News Mark Announcing Distillery 2.0 MKdocs https://hexdocs.pm/distillery/home.html. Charles Launch by Jeff Walker Downcast Andrew Ex json Schema React json schema from
Panel: Charles Max Wood Mark Eriksen Eric Berry Special Guest: Andrew Summers In this episode of Elixir Mix, the panel talks to Andrew Summers who lives in Chicago, currently. Working on Elixir development, and here to talk about how he wrote the dialyzer pretty printer. He is a software engineer for Albert.io, makes cool stuff every day, loves punk music, and Philadelphia sports. The panel talks about the Dialyzer pretty printing, Elixir, code writing, and more! Show Topics: 1:07 – Why are you famous? 1:11 – Andrew: Answers the question. 1:34 – Chuck: Nice. Is the dialyzer printer complete pretty printing or is it more than that? 1:45 – Andrew talks. He mentions the background information on this specific printer, which was written a decade ago. 4:13 – Panel: One thing that is helpful is that it is a static code analysis. In the Elixir we are writing these spec statements. For nothing else than this type is coming out. Then this looks at the code, and your spec says you are returning this, but I can tell that you are also returning X, Y, or Z. So it is helping us see what we are declaring a code to do, and that’s really what the code is doing. 5:28 – Guest: Yes, exactly. To continue that topic here is what else it’s saying... 6:08 – Panel: Our panelist is not here, but he has had to fix code before with that problem. With Dialect Dialyzer – how do we say this library is out-of-date? The code is out-of-date. How do I get my stuff to pass – to clean up my site? 6:54 – Guest: Containing that warning. Guest goes into further detail how to problem-solve this issue. 8:02 – Panel: So you are saying that I can funnel. 8:20 – Panel & Guest go back-and-forth talking about this topic. 9:49 – Panel: I am still diving into the system. Haven’t really used the printer, yet. Panelist asks Guest a question. 10:04 – Guest: At the forefront there are some configurations to help with that. 11:16 – Panel: Why would someone not want to use this? What are the cons? 11:23 – Guest: It would have to do more with CI than anything (one con). 13:06 – Panel: Lots of people are coming to Elixir New. Great. What is the selling point? Why should someone invest his or her time in this project? 13:33 – Guest: I find looking for a type spec is one more piece of information that could help the reader that would tell them what the code should be doing. Any information from the original author to be passed down is great. Having the machine to check that, whenever you push code, it’s an imperfect check (as we were saying). If it can tell you that you did something wrong, then why not? It gives you that extra red flag. There are huge benefits to that. Same reason we write unit tests. 15:20 – Panel: You are learning Elixir right, Chuck? Panelist talks about tech specs, code writing, and learning projects. 16:25 – Panel: Here is a tip to learning. One thing that I did I came to an existing project and writing a sub-system ( as series of modules) Writing the tech specs. As they are interacting with each other, then writing Dial Elixir, and grab the output to the file path to where my code is. Within my own code find where I am inconsistent. Andrew – you could get pages of output, right? Any tips for users? 17:37 – Guest: Isolate portions of your code base. 19:27 – Chuck: I do like the idea of the umbrella. Phoenix app out into an umbrella. A sub apps and they are more centered, smaller sized. Then, yeah. Start with Dialyzer on just that project. Isolate it, and this app in the umbrella. The output is much smaller, and good success with that. Now, one of the new features you added was the language / the code that it reports is an ERLANG term. That is not familiar to most Elixir developers. Especially if you are new to it. If you are turning this into a friendly Elixir thing, then you had to learn other programs. How did you get into this path? 21:00 – Andrew: Whenever there was complicated “something” at work – I was the person to go to. As I started to do it more and more I saw patterns in the output. Things were kind of predictable, and how to format things. It synchronizes weird. What would I do to write this task? Researched. There are 2 tools = LEEX and YECC. If you have 2 files in your source directory... 22:56 – Advertisement – Digital Ocean 23:39 – Panel: It’s cool. 23:58 – Guest: It brought me back to some courses from school. I thought that was funny. They are pretty contained tools. 24:36 – Panel: Part of your motivation was from Jose. 24:49 – Guest: Yes, definitely. 25:39 – Did you have any questions for Jose? 26:35 – Panel: You added the feature of... CREDO is pretty well-known. 27:28 – Guest: Sure, I guess I did skip some of that. Andrew talked about different libraries, ERLANG modules, and so on. 28:38 – Panel: What else are you doing? 28:45 – Getting error messages fixed for version 1.0. Trying to close-up the residual things. 30:18 – Guest keeps talking about support and other bugs. Andrew: If you see something, say something. 31:00 - Panel: There are languages that run on the beam. Something to create something more standard so different languages can depend on. Is there anything like that? To help you with your tooling? 31:40 – Andrew: Good question! Some of the things that happen at the Dialyzer level, stuff just gets dropped. 33:47 – Guest: How this works all together... 35:15 – Chuck: How to contribute to Dialyxir? 35:30 – Guest: Around error messages – is the best place to look. If you have a good editor hand, good place for that. If you are further into the compiler land – might want to play with that. 36:29 – Guest: ERLEX 36:43 – Chuck: What did you learn about building these libraries? 36:55 – Guest: I learned a lot about the construction of Elixir. Guest dives into this more. 38:25 – Chuck: The principle that you cannot bind... 38:51 – Guest: ...this area of my code-base... it would be nice to turn off those features. When I really do need it – I need it, but not so if I don’t need it. 39:39 – Panel: I want to point someone to a resource: TypeSpecs. 39:54 – Guest: I used that so much! Wonderful resource, I learned so much stuff! I stole all the output from that. I didn’t know that language had that?! 40:20 – Panel chimes in about this resource some more. 41:02 – Guest: We really do have a simple language. There are some weird things, but not a lot of constructs under the hood. Only a few data structures. It could have been more complicated. I was worried about that – but that never happened, because... 41:41 – Panel: Thanks for adding that. Very true. 42:51 – Guest talks about other things that are very simple, too. 44:35 – Panel: Are you doing fulltime with Elixir for programming? 44:35 – Guest: Yes, we are using other Elixir and JS App. In another life I used... They all can teach you something. Sometimes the journey of going there and realizing WHY you don’t want to be there is sometimes worth the journey! 45:20 – Panel asks guest a question. 45:25 – Guest answers question. Andrew: We have enjoyed our time in Elixir. It’s nice. 46:27 – Panel: Anything else? 46:33 – Panel: Where can people find you online? 46:40 – Guest: Elixir Slack, Twitter, GitHub. 47:01 – Picks! 47:05 – Advertisement – Code Badges Links: Andrew Summers’ Twitter Credo Erlang Dialyxir LEEX YECC Credo ERLEX TypeSpecs Curated Dev News for Busy Developers EX_JSON_SCHEMA React – Jsonschema – form Announcing Distillery 2.0 Distillery’s documentation! MKDocs EX_Json_Schema Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Eric Chrome Extension for News Mark Announcing Distillery 2.0 MKdocs https://hexdocs.pm/distillery/home.html. Charles Launch by Jeff Walker Downcast Andrew Ex json Schema React json schema from
Panel: Divya Sasidharan Charles Max Wood Joe Eames John Papa Chris Fritz Erik Hanchett Special Guest: Sarah Drasner In this episode, the panel talks with Jacob Schatz and Taylor Murphy who are apart of the GitLab Team. Jake is a staff developer, and Taylor is a manager at GitLab who started off as a data engineer. To find out more about the GitLab Team check them out here! Also, they are looking to hire, so inquire about the position through GitLab, if interested! The panel talks about Vue, Flux, Node, Flask, Python, D3, and much...much more! Show Topics: 1:51 – Chuck: Introduce yourselves, please. 1:55 – Backgrounds of the guests. 2:45 – Chuck. 2:51 – GitLab (GL): We first adapted Vue at the GitLab team for 2 years now. 3:34 – Chuck: What’s your workflow like through Vue? 3:50 – GL: We are using an application that...Using Python and Flask on the background. Vue CLI throughout the development. 4:35 – Panel asks a question. 4:40 – GitLab answers the question. 5:38 – Panel: Tell us about your secret project? 5:49 – GL: The data team at GL we are trying to solve these questions. How to get from resume to hire? There is data there. So that’s what Meltano helps with. Taylor has a Ph.D. in this area so he knows what’s he’s talking about. 7:30 – Taylor dives into this project via GitLab. 8:52 – GL: Super cool thing is that we are figuring out different ways to do things. It’s really cool stuff that we are doing. 9:23 – Panel: I’ve worked on projects when the frontend people and the data people are doing 2 different things. And they don’t know what each other group is doing. It’s interesting to bring the two things together. I see that teams have a hard time working together when it’s too separated. 10:31 – Panel: Can we get a definition of data scientist vs. a data engineer. 10:44 – Panel: Definitions of DATA SCIENCE and DATA ENGINEER are. 11:39 – GL: That is pretty close. Data science means different things to different people. 12:51 – Panel chimes in. 13:00 – Panel asks a question. 13:11 – GL: When I started working on Meltano... 14:26 – Panel: Looker is a visualization tool; I thought: I bet we can make that. I have been recreating something like Looker. We are trying to replace Looker. We are recreating a lot of the functionality of Looker. 15:10 – Panel will this be called...? 15:31 – Meltano analyze it’s apart of Meltano. Cool thing about Looker it has these files that show the whole visualization – drag and drop. With these files we can do version control. It’s built in – and if you drag it’s apart of a database. We took these files and we... 17:37 – Panel: Define Vue for that, please? 17:49 – GL dives into this topic. 18:40 – GL mentions Node. 18:52 – Chuck: What format does your data take? Do you have different reports that get sent? How does that work? 19:13 – GL: It tells a list of measures and dimensions. I setup our database to... 20:13 – Panel: Question. You chose Vue and it’s working. The reality you could have chosen any other tools. Why really did you choose Vue? 20:30 – GL: I know Vue really well. In the early 2000s I had my... If I have to repeat a process I always use Vue, because it’s the thing I am most comfortable with. This is how I program things very quickly. 21:10 – Panel: How has Vue met or exceeded or not met those expectations? 21:20 – GL: It has exceeded my expectations. One of the things is that as I am trying to staff a team I am trying to write Vue so when people see it they don’t think, “why would he do that?” 22:53 – Flux inspired architecture. 23:07 – GitLab continues the talk. 23:21 – Everything is Flux inspired in the sense that it was an idea to start with and then everybody made alterations and built things on top of that. 23:48 – Panel chimes in. 24:35 – Panel: Can you speak on the process of the workflow and process you work in Taylor and the data science and the frontend of it? 24:54 – GL: It’s the same but different. GitLab talks about Meltano some more, and also Taylor. GL: Taylor is trying to solve all these problems through Meltano. Maybe we can build our own tools? 26:05 – Panel: What’s a Lever Extractor?! 26:14 – GL: Answers this question. 26:25 – Panel: So it’s not a technical term...okay. 26:30 – GitLab continues the talk and discusses different tools. 27:18 – Panel: You are grabbing that data and Taylor is doing his magic? Or is it more integrated? 27:32 – GL answers this question. 29:06 – GitLab: In the beginning we are building that extractors for the other team, but later... The cool thing about Meltano is making it like Word Press. We have an extractor, different directories other things will be discovered by Meltano and discovered by the Gooey. If you write it correctly it can hook on to it. 30:00 – Digital Ocean Advertisement 31:38 – Panel: Meltano is a mix between Python and JavaScript or Vue? 30:43 – GL: Yeah... 31:20 – Panel asks question. How are you orchestrating the data? 31:32 – GL: Eventually it will happen with GitLab CUI. We are thinking we can orchestrate other ways. Right now it’s manually. 32:33 – GL: I like finding some sort of language that doesn’t have an extension...and writing... 32:54 – GL: I’m excited to use a tool that does things the right way like loading and transforming data but the frontend can be a joy to use. A previous company that I worked with and thought: It would be a joy to work with and connect to things that make sense, and do things the “right way”. I hope that’s what we can do with Meltano. I’m not a frontend person, but I appreciate it. 34:03 – GL: This is what I’m going to do...we will have these conversations between Taylor, myself, and our teams. 34:53 – Panel: This is a tool that people need to DL, maybe will you guys host this somewhere as a service. 35:10 – GL: We are trying to get this running. Small steps. It’s not out of the question and it’s not out of the question for this to be a service. 35:33 – GL: What do you want to do with the data warehouse? Your data is yours. 36:06 – Panel: Yeah, you don’t want to be in-charge of that. 36:17 – Panel: Have we asked where the name Meltano came from? 36:30 – GL: It sounds like a weird name. Here is the background of the name of “Meltano” came from. First name was from a sperm whale, it’s a unique name: Cachalot. 38:02 – GL: Conversation continues. 38:38 – Panel chimes in. 38:58 – GL: What does this program offering and doing...This was to help me with the name. 39:27 – GL: Acronym for Meltano: Model / Extract / Load / Transform / Analyze / Notebook / Orchestrate 39:47 – GL continues. They talk about notebooks. 40:19 –Sounds like a Daft Punk album! 40:28 – GL: I am trying to get more on the data science side. 40:57 – Panel: Question. Is Meltano super responsive and quick? 41:17 – GL: It depends on the size of the data, of course, but it is very responsive. 42:11 – GL: That job took 7-8 hours to extract everything for that specific project. 42:39 – GL: There are a lot of moving parts, so that could depend on it slowing it down or speeding it up. 43:01 – When you were building Meltano for your team, for the visualization how do you make decisions on what exactly you are visualizing? 43:18 – GL: That is the tricky part...you are one team. We are trying to find at a point where the data team is happy. One thing for example I put out a bar chart. Team member said that bar charts should always be vertical. So I am learning how they work and their wealth of information on visualization. 44:33 – Panel: Chris always does visualization. 44:48 – GL: Emily is on the team, and knows a lot about that. The correct way to visualize data so it doesn’t just look “cool.” You want it to be useful. Chart JS is what I use. 45:32 – Panel: I have used Chart JS before, too. 46:00 – Chris: I really like... 46:37 – Panel continues this conversation. 47:01 – Panel: Keynote will be given by...at this conference. 47:11 – GL continues to talk about this conversation. From nothing to something in a short amount of time. When I showed people: 47:55 – Panel: are you using Vue transitions? 48:09 – GL: Nope not even slightly. My plan was to use Vue transitions but it’s icing on the cake. Just get it working. 48:29 – Panel: A link of how I use... 49:14 – GL: This is a very small amount of code to where you are. It’s not like you had to re-implement triangles or anything like that. 49:36 – Panel: It does take some time but once you get it – you get it. 49:59 – Panel: When working with axis it can get hairy. 50:52 – GL: D3 really does a lot of the math for you and fits right it once you know how it works. You can draw anything with HTML. Check Links. 52:19 – Panel: There are a million different ways to do visualizations. There is math behind... 53:08 – Panel: D3 also helps with de-clustering. 53:25 – Panel: Any recommendations with someone who wants to dive into D3? 53:37 – GL: Tutorials have gotten better over time. 53:57 – Panel continues the conversation. 54:19 – GL: D3 Version 4 and 5 was one big library. You have C3 – what’s your opinion on C3? 55:00 – GL: have no strong opinions. 55:03 – Chuck chimes in. 55:18 – Panel continues this conversation. She talks about how she had a hard time learning D3, and how everything clicked once she learned it. 55:55 – GL: Main reason why I didn’t use D3 because... 56:07 – GL: If you were a “real” developer you’d... 56:35 – Panel: Let’s go to Picks! 56:40 – Advertisement – Code Badges Links: JavaScript Ruby on Rails Angular Digital Ocean Code Badge Notion Vue Meltano Looker Node Flux Taylor Python Chart JS React Chris Fritz – JS Fiddle D3 Chris Lema – Building an Online Course... Vuetify The First Vue.js Spring Vue CLI 3.0 Online Tutorials To Help You Get Ahead Hacker Noon – Finding Creativity in Software Engineer Indiegogo Create Awesome Vue.js Apps With... Data Sketches Vue.js in Action Benjamin Hardy’s Website Data Intensive: Don’t Just Hack It Together Article: How to Pick a Career...By Tim Urban Taylor A. Murphy’s Twitter Email: tmurphy@gitlab.com GitLab – Meet our Team Jacob Schatz’s Twitter Sponsors: Kendo UI Digital Ocean Code Badge Cache Fly Picks: Joe Ben Hardy on Medium Set Goals Chris Vue CLI 3 Vue CLI 3 on Medium Vue Dev Tools Get a new computer John Vuetify Divya Data Sketch One climb Finding Creativity in Software Engineering Erik Create Awesome Vue.js Vue.js in action Charles Get a Coder Job Building an online course Jacob Alma CCS Read source code Allen Kay Taylor Designing Data-Intensive Applications Wait But Why
Panel: Divya Sasidharan Charles Max Wood Joe Eames John Papa Chris Fritz Erik Hanchett Special Guest: Sarah Drasner In this episode, the panel talks with Jacob Schatz and Taylor Murphy who are apart of the GitLab Team. Jake is a staff developer, and Taylor is a manager at GitLab who started off as a data engineer. To find out more about the GitLab Team check them out here! Also, they are looking to hire, so inquire about the position through GitLab, if interested! The panel talks about Vue, Flux, Node, Flask, Python, D3, and much...much more! Show Topics: 1:51 – Chuck: Introduce yourselves, please. 1:55 – Backgrounds of the guests. 2:45 – Chuck. 2:51 – GitLab (GL): We first adapted Vue at the GitLab team for 2 years now. 3:34 – Chuck: What’s your workflow like through Vue? 3:50 – GL: We are using an application that...Using Python and Flask on the background. Vue CLI throughout the development. 4:35 – Panel asks a question. 4:40 – GitLab answers the question. 5:38 – Panel: Tell us about your secret project? 5:49 – GL: The data team at GL we are trying to solve these questions. How to get from resume to hire? There is data there. So that’s what Meltano helps with. Taylor has a Ph.D. in this area so he knows what’s he’s talking about. 7:30 – Taylor dives into this project via GitLab. 8:52 – GL: Super cool thing is that we are figuring out different ways to do things. It’s really cool stuff that we are doing. 9:23 – Panel: I’ve worked on projects when the frontend people and the data people are doing 2 different things. And they don’t know what each other group is doing. It’s interesting to bring the two things together. I see that teams have a hard time working together when it’s too separated. 10:31 – Panel: Can we get a definition of data scientist vs. a data engineer. 10:44 – Panel: Definitions of DATA SCIENCE and DATA ENGINEER are. 11:39 – GL: That is pretty close. Data science means different things to different people. 12:51 – Panel chimes in. 13:00 – Panel asks a question. 13:11 – GL: When I started working on Meltano... 14:26 – Panel: Looker is a visualization tool; I thought: I bet we can make that. I have been recreating something like Looker. We are trying to replace Looker. We are recreating a lot of the functionality of Looker. 15:10 – Panel will this be called...? 15:31 – Meltano analyze it’s apart of Meltano. Cool thing about Looker it has these files that show the whole visualization – drag and drop. With these files we can do version control. It’s built in – and if you drag it’s apart of a database. We took these files and we... 17:37 – Panel: Define Vue for that, please? 17:49 – GL dives into this topic. 18:40 – GL mentions Node. 18:52 – Chuck: What format does your data take? Do you have different reports that get sent? How does that work? 19:13 – GL: It tells a list of measures and dimensions. I setup our database to... 20:13 – Panel: Question. You chose Vue and it’s working. The reality you could have chosen any other tools. Why really did you choose Vue? 20:30 – GL: I know Vue really well. In the early 2000s I had my... If I have to repeat a process I always use Vue, because it’s the thing I am most comfortable with. This is how I program things very quickly. 21:10 – Panel: How has Vue met or exceeded or not met those expectations? 21:20 – GL: It has exceeded my expectations. One of the things is that as I am trying to staff a team I am trying to write Vue so when people see it they don’t think, “why would he do that?” 22:53 – Flux inspired architecture. 23:07 – GitLab continues the talk. 23:21 – Everything is Flux inspired in the sense that it was an idea to start with and then everybody made alterations and built things on top of that. 23:48 – Panel chimes in. 24:35 – Panel: Can you speak on the process of the workflow and process you work in Taylor and the data science and the frontend of it? 24:54 – GL: It’s the same but different. GitLab talks about Meltano some more, and also Taylor. GL: Taylor is trying to solve all these problems through Meltano. Maybe we can build our own tools? 26:05 – Panel: What’s a Lever Extractor?! 26:14 – GL: Answers this question. 26:25 – Panel: So it’s not a technical term...okay. 26:30 – GitLab continues the talk and discusses different tools. 27:18 – Panel: You are grabbing that data and Taylor is doing his magic? Or is it more integrated? 27:32 – GL answers this question. 29:06 – GitLab: In the beginning we are building that extractors for the other team, but later... The cool thing about Meltano is making it like Word Press. We have an extractor, different directories other things will be discovered by Meltano and discovered by the Gooey. If you write it correctly it can hook on to it. 30:00 – Digital Ocean Advertisement 31:38 – Panel: Meltano is a mix between Python and JavaScript or Vue? 30:43 – GL: Yeah... 31:20 – Panel asks question. How are you orchestrating the data? 31:32 – GL: Eventually it will happen with GitLab CUI. We are thinking we can orchestrate other ways. Right now it’s manually. 32:33 – GL: I like finding some sort of language that doesn’t have an extension...and writing... 32:54 – GL: I’m excited to use a tool that does things the right way like loading and transforming data but the frontend can be a joy to use. A previous company that I worked with and thought: It would be a joy to work with and connect to things that make sense, and do things the “right way”. I hope that’s what we can do with Meltano. I’m not a frontend person, but I appreciate it. 34:03 – GL: This is what I’m going to do...we will have these conversations between Taylor, myself, and our teams. 34:53 – Panel: This is a tool that people need to DL, maybe will you guys host this somewhere as a service. 35:10 – GL: We are trying to get this running. Small steps. It’s not out of the question and it’s not out of the question for this to be a service. 35:33 – GL: What do you want to do with the data warehouse? Your data is yours. 36:06 – Panel: Yeah, you don’t want to be in-charge of that. 36:17 – Panel: Have we asked where the name Meltano came from? 36:30 – GL: It sounds like a weird name. Here is the background of the name of “Meltano” came from. First name was from a sperm whale, it’s a unique name: Cachalot. 38:02 – GL: Conversation continues. 38:38 – Panel chimes in. 38:58 – GL: What does this program offering and doing...This was to help me with the name. 39:27 – GL: Acronym for Meltano: Model / Extract / Load / Transform / Analyze / Notebook / Orchestrate 39:47 – GL continues. They talk about notebooks. 40:19 –Sounds like a Daft Punk album! 40:28 – GL: I am trying to get more on the data science side. 40:57 – Panel: Question. Is Meltano super responsive and quick? 41:17 – GL: It depends on the size of the data, of course, but it is very responsive. 42:11 – GL: That job took 7-8 hours to extract everything for that specific project. 42:39 – GL: There are a lot of moving parts, so that could depend on it slowing it down or speeding it up. 43:01 – When you were building Meltano for your team, for the visualization how do you make decisions on what exactly you are visualizing? 43:18 – GL: That is the tricky part...you are one team. We are trying to find at a point where the data team is happy. One thing for example I put out a bar chart. Team member said that bar charts should always be vertical. So I am learning how they work and their wealth of information on visualization. 44:33 – Panel: Chris always does visualization. 44:48 – GL: Emily is on the team, and knows a lot about that. The correct way to visualize data so it doesn’t just look “cool.” You want it to be useful. Chart JS is what I use. 45:32 – Panel: I have used Chart JS before, too. 46:00 – Chris: I really like... 46:37 – Panel continues this conversation. 47:01 – Panel: Keynote will be given by...at this conference. 47:11 – GL continues to talk about this conversation. From nothing to something in a short amount of time. When I showed people: 47:55 – Panel: are you using Vue transitions? 48:09 – GL: Nope not even slightly. My plan was to use Vue transitions but it’s icing on the cake. Just get it working. 48:29 – Panel: A link of how I use... 49:14 – GL: This is a very small amount of code to where you are. It’s not like you had to re-implement triangles or anything like that. 49:36 – Panel: It does take some time but once you get it – you get it. 49:59 – Panel: When working with axis it can get hairy. 50:52 – GL: D3 really does a lot of the math for you and fits right it once you know how it works. You can draw anything with HTML. Check Links. 52:19 – Panel: There are a million different ways to do visualizations. There is math behind... 53:08 – Panel: D3 also helps with de-clustering. 53:25 – Panel: Any recommendations with someone who wants to dive into D3? 53:37 – GL: Tutorials have gotten better over time. 53:57 – Panel continues the conversation. 54:19 – GL: D3 Version 4 and 5 was one big library. You have C3 – what’s your opinion on C3? 55:00 – GL: have no strong opinions. 55:03 – Chuck chimes in. 55:18 – Panel continues this conversation. She talks about how she had a hard time learning D3, and how everything clicked once she learned it. 55:55 – GL: Main reason why I didn’t use D3 because... 56:07 – GL: If you were a “real” developer you’d... 56:35 – Panel: Let’s go to Picks! 56:40 – Advertisement – Code Badges Links: JavaScript Ruby on Rails Angular Digital Ocean Code Badge Notion Vue Meltano Looker Node Flux Taylor Python Chart JS React Chris Fritz – JS Fiddle D3 Chris Lema – Building an Online Course... Vuetify The First Vue.js Spring Vue CLI 3.0 Online Tutorials To Help You Get Ahead Hacker Noon – Finding Creativity in Software Engineer Indiegogo Create Awesome Vue.js Apps With... Data Sketches Vue.js in Action Benjamin Hardy’s Website Data Intensive: Don’t Just Hack It Together Article: How to Pick a Career...By Tim Urban Taylor A. Murphy’s Twitter Email: tmurphy@gitlab.com GitLab – Meet our Team Jacob Schatz’s Twitter Sponsors: Kendo UI Digital Ocean Code Badge Cache Fly Picks: Joe Ben Hardy on Medium Set Goals Chris Vue CLI 3 Vue CLI 3 on Medium Vue Dev Tools Get a new computer John Vuetify Divya Data Sketch One climb Finding Creativity in Software Engineering Erik Create Awesome Vue.js Vue.js in action Charles Get a Coder Job Building an online course Jacob Alma CCS Read source code Allen Kay Taylor Designing Data-Intensive Applications Wait But Why
Panel: Charles Max Wood Mark Ericksen Josh Adams Eric Berry Special Guest: Chris McCord In this episode of Elixir Mix, the panel talks to Chris who created Phoenix and is an author, also. Chris McCord is a monumental developer within the community, and it’s exciting to see how LiveView is a great add-on to Phoenix, which is his baby. Finally, the panel talks about topics, such as Phoenix, LiveView, Elm, and Fire Nest. Show Topics: 1:21 – What are you famous for? 1:49 – Chuck: You created Phoenix. There is a new feature, LiveView, can you share with us what that is? 2:08 – Chris: Sure. What got me started with creating Phoenix is similar to how I got into LiveView. 3:13 – Panelist chimes in with his comments. Panel: Questions we are asking: How to give the audience a high-quality experience without a huge overhead. When I watch this video on LiveView, I was freaking out. Are you glad you did it? 5:01 – Chris: The response is really exciting and it really resonated with a lot of people. Often, I thought, working on past projects thoughts along these lines: “this was a huge waste of the day.” And I’m glad this was a good response. 6:08 – Panel: Explain what you can do right now. 6:18 – Chris dives into this topic. Chris: We wanted to offer a rich experience. A lot of things we can target out of the box, with rich UI. 8:20 – Panel: You announced this in your keynote in Washington D.C. The day before you hinted at it. And I thought: Is this even a good idea? Is this a misguided effort? If you have this first impression go, first, and see the video. You explain well your history and what you wanted with web development. Watch this video to maybe not be skeptical. 9:47 – Panel comments. 9:50 – Chuck: I haven’t seen the video, yet. I am used to doing this with JavaScript. How do you do without JavaScript? Frontend? 10:14 – There are pixies and sparkles, and Chris is bringing these sparkles! 10:31 – Chris: It’s nice because we are piggybacking off the channel level. There is no JavaScript that you have to write today. 11:16 – Panel: Question to Chris. 11:31 – Chris answers the question. 13:13 – Panel: Who else is doing this right now? 13:15 – Chris answers question. 14:51 – Panel: The original dream. Phoenix was just a stepping step to LiveView. 15:08 – Chris: Those who are casting judgment – please watch the video. For years I have had this idea that I want to stay in the server-land... 15:55 – Panel: It’s funny that your path unfolded the way that it did. 16:28 – Chris: It blows me away. 16:38 – Panel: I bet when you wake up your pants just attach themselves to your legs! 16:57 – Chris: I work remotely, so... 17:08 – Chuck: That got weird. 17:18 – Panel: You’ve got a lot going on. When can we expect to see this? I’m sure you get that asked a lot. Phoenix 1.4 has to come first, and you are working on your book. While that’s going on you have a project called Fire Nest. Sounds like you have a couple things you’re doing right now? How do you prioritize? 18:08 – Chris answers these questions. Chris: I do work full-time on Phoenix. Phoenix 1.0 is on my own time. This is at my own discretion. Whatever helps the community is good for them and for me. That’s how I do it without completing losing it. The book has been over a year delayed. It’s always a battle it’s a love/hate relationship. It’s hard when you when you want to work on exciting things like LiveView. The future, the things we want to build for. Some weeks it’s more writing, and some weeks its coding. 20:01 – Panel talks about Chris’ team. 20:25 – Panel: I got to ask you, I am more of a Ruby developer, and this thing that you’ve developed is making me lean towards Elixir. What’s your least favorite thing about Phoenix? 20:56 – Chris: Never have been asked this before. 21:06 – Chris: The thing that bothers me the most is maybe configuration? Lots of folks we did a lot of the configurations. I guess that has been a recent thing that’s come up. Even though, personally, I don’t have a lot of issues with it. 22:38 – Advertisement – Digital Ocean 23:13 – It’s hard to point out ugly features of your own baby. 23:26 – Panel: You’ve talked about your rel. with DockYard, Inc. What’s that responsibility like? 23:44 – Chris: I am a cheerleader for the company. I do work in a consulting role. This is good because I am solving real-world problems. I’d loose touch with that if I didn’t consult. The other time I try to help the team if needed. It’s a good mix for me. Writing Elixir code and not just framework code. 25:02 – Panel: Umbrella project. Your rel. with your clients – when you would suggest an umbrella project or not? 25:26 – Chris: It depends. It’s not so much code structure it’s mostly from an operational standpoint and not from a code structure standpoint. 26:51 – Chuck: Give us a short history of Phoenix. How does LiveView tie into your vision with Phoenix? 27:13 – Chris gives us his thoughts. Chris: In 2013 – I fell in love with Ruby. That’s to show that it wasn’t on my radar to do anything else professionally. Never thought I would develop something like Phoenix. My wife noticed that I came home unhappy when I worked with Ruby at some point. She noticed a difference. Chris continues to share the Genesis of Phoenix. It’s been a crazy ride. 32:32 – Chuck: So it was mostly about the scaling. I’ve played socket IO, do some harm, then come back. Action cables are a little less of a pain. Chuck continues his thoughts and asks a question. 33:10 – Chris answers Chuck’s question. 35:00 – Chuck. 35:14 – Chris. It’s interesting because you could have used a LiveView layer in the mid-2000s and nothing in town would have been able to compete. 35:56 – Panel: One great thing about Rails is the integration. There is a path to it. Is there anything like that for the docket to build that for Phoenix? There is webpacker for Rails but is there going to be that for Phoenix. 36:35 – Chris: No is the simple answer. It just works the way you would expect. 37:46 – Chuck: The other one is partial JS. IT’s interesting because I go back and forth, too. I like the approach with JavaScript. I play with everything. I’ve been playing with an app recently and figured out how to do it in Brunch, because that’s what’s there. Why solve it the Elixir way? As a backend developer I may not want to mess with it. 38:51 – Panel: Another question about LiveView. From the video, from what I understand, is that the data that’s pulled from reads and rights? 39:26 – Chris: I hope this doesn’t sounds like a cop out answer. My answer is that you will handle any system you are building it in Elixir. If you want to have durable state you would use existing tools that you have already. 40:17 – Panel: The facilities you built around the LiveView, is it valuable for someone to... 40:42 – Chris answers the question. 41:22 – Panel: Another question on how LiveView works. Is that dependent on there being a JavaScript connection? 41:49 – Chris: Answer to that is if you are... 42:50 – Chuck. 42:53 – Chris. 43:29 – Panel: How is Fire Nest coming along? 43:38 – Chris: I won’t say it’s steady progress, but it’s coming along. We are working on it. 44:53 – Panel: That was exactly what I wanted to hear. 45:00 – Advertisement. 45: 42 – Panel: The new developments are happening outside of the community of Phoenix, right? 46:07 – Chris: People think Phoenix is “heavy,” but it really isn’t. It’s really I want 80% and the teams and communities can build on top of that. Not in core. Not everyone needs X feature. No reason to shove it in core. It’s not about having it being “lighter.” I am developing resisting the urge to do it because someone says so. 47:40 – Panel: Phoenix for me feels like it’s baked. There really isn’t anything that is lacking. It’s extensible. It’s done. That’s exciting. These add-ons like LiveView are a great plugin. 48:23 – Chuck: How do people keep in touch with what you are doing and your projects? 48:51 – Panel: Anyone on the team working with Elm? 49:00 – Chris answers this question. Elm has been on my radar, but haven’t gotten into it, yet. Not in the foreseeable future either. 50:20 – Chuck: Picks! Links: Chris McCord’s Website Chris McCord’s Twitter Chris McCord’s GitHub Chris McCord’s YouTube Chris McCord’s LinkedIn Chris McCord’s Medium Chris McCord’s DockYard Posts Chris McCord’s Video Chris McCord’s Keynote Talk Elm GitHub – Morphdom GitHub – Drab Fire Nest Article on LiveView Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Charles Geeking-out about the space stuff. Self-fastening pants – Velcro Book: Soft Cover IO Docking station Mark The Talk Fire Nest Project Josh Website: SmoothTerminal.com Eric Earthrise – Apollo 8 – 1968 picture Earthrise Wikipedia Podcast – American Life Chris Phoenix 1.4 Book Phoenix Programming Book
Panel: Charles Max Wood Mark Ericksen Josh Adams Eric Berry Special Guest: Chris McCord In this episode of Elixir Mix, the panel talks to Chris who created Phoenix and is an author, also. Chris McCord is a monumental developer within the community, and it’s exciting to see how LiveView is a great add-on to Phoenix, which is his baby. Finally, the panel talks about topics, such as Phoenix, LiveView, Elm, and Fire Nest. Show Topics: 1:21 – What are you famous for? 1:49 – Chuck: You created Phoenix. There is a new feature, LiveView, can you share with us what that is? 2:08 – Chris: Sure. What got me started with creating Phoenix is similar to how I got into LiveView. 3:13 – Panelist chimes in with his comments. Panel: Questions we are asking: How to give the audience a high-quality experience without a huge overhead. When I watch this video on LiveView, I was freaking out. Are you glad you did it? 5:01 – Chris: The response is really exciting and it really resonated with a lot of people. Often, I thought, working on past projects thoughts along these lines: “this was a huge waste of the day.” And I’m glad this was a good response. 6:08 – Panel: Explain what you can do right now. 6:18 – Chris dives into this topic. Chris: We wanted to offer a rich experience. A lot of things we can target out of the box, with rich UI. 8:20 – Panel: You announced this in your keynote in Washington D.C. The day before you hinted at it. And I thought: Is this even a good idea? Is this a misguided effort? If you have this first impression go, first, and see the video. You explain well your history and what you wanted with web development. Watch this video to maybe not be skeptical. 9:47 – Panel comments. 9:50 – Chuck: I haven’t seen the video, yet. I am used to doing this with JavaScript. How do you do without JavaScript? Frontend? 10:14 – There are pixies and sparkles, and Chris is bringing these sparkles! 10:31 – Chris: It’s nice because we are piggybacking off the channel level. There is no JavaScript that you have to write today. 11:16 – Panel: Question to Chris. 11:31 – Chris answers the question. 13:13 – Panel: Who else is doing this right now? 13:15 – Chris answers question. 14:51 – Panel: The original dream. Phoenix was just a stepping step to LiveView. 15:08 – Chris: Those who are casting judgment – please watch the video. For years I have had this idea that I want to stay in the server-land... 15:55 – Panel: It’s funny that your path unfolded the way that it did. 16:28 – Chris: It blows me away. 16:38 – Panel: I bet when you wake up your pants just attach themselves to your legs! 16:57 – Chris: I work remotely, so... 17:08 – Chuck: That got weird. 17:18 – Panel: You’ve got a lot going on. When can we expect to see this? I’m sure you get that asked a lot. Phoenix 1.4 has to come first, and you are working on your book. While that’s going on you have a project called Fire Nest. Sounds like you have a couple things you’re doing right now? How do you prioritize? 18:08 – Chris answers these questions. Chris: I do work full-time on Phoenix. Phoenix 1.0 is on my own time. This is at my own discretion. Whatever helps the community is good for them and for me. That’s how I do it without completing losing it. The book has been over a year delayed. It’s always a battle it’s a love/hate relationship. It’s hard when you when you want to work on exciting things like LiveView. The future, the things we want to build for. Some weeks it’s more writing, and some weeks its coding. 20:01 – Panel talks about Chris’ team. 20:25 – Panel: I got to ask you, I am more of a Ruby developer, and this thing that you’ve developed is making me lean towards Elixir. What’s your least favorite thing about Phoenix? 20:56 – Chris: Never have been asked this before. 21:06 – Chris: The thing that bothers me the most is maybe configuration? Lots of folks we did a lot of the configurations. I guess that has been a recent thing that’s come up. Even though, personally, I don’t have a lot of issues with it. 22:38 – Advertisement – Digital Ocean 23:13 – It’s hard to point out ugly features of your own baby. 23:26 – Panel: You’ve talked about your rel. with DockYard, Inc. What’s that responsibility like? 23:44 – Chris: I am a cheerleader for the company. I do work in a consulting role. This is good because I am solving real-world problems. I’d loose touch with that if I didn’t consult. The other time I try to help the team if needed. It’s a good mix for me. Writing Elixir code and not just framework code. 25:02 – Panel: Umbrella project. Your rel. with your clients – when you would suggest an umbrella project or not? 25:26 – Chris: It depends. It’s not so much code structure it’s mostly from an operational standpoint and not from a code structure standpoint. 26:51 – Chuck: Give us a short history of Phoenix. How does LiveView tie into your vision with Phoenix? 27:13 – Chris gives us his thoughts. Chris: In 2013 – I fell in love with Ruby. That’s to show that it wasn’t on my radar to do anything else professionally. Never thought I would develop something like Phoenix. My wife noticed that I came home unhappy when I worked with Ruby at some point. She noticed a difference. Chris continues to share the Genesis of Phoenix. It’s been a crazy ride. 32:32 – Chuck: So it was mostly about the scaling. I’ve played socket IO, do some harm, then come back. Action cables are a little less of a pain. Chuck continues his thoughts and asks a question. 33:10 – Chris answers Chuck’s question. 35:00 – Chuck. 35:14 – Chris. It’s interesting because you could have used a LiveView layer in the mid-2000s and nothing in town would have been able to compete. 35:56 – Panel: One great thing about Rails is the integration. There is a path to it. Is there anything like that for the docket to build that for Phoenix? There is webpacker for Rails but is there going to be that for Phoenix. 36:35 – Chris: No is the simple answer. It just works the way you would expect. 37:46 – Chuck: The other one is partial JS. IT’s interesting because I go back and forth, too. I like the approach with JavaScript. I play with everything. I’ve been playing with an app recently and figured out how to do it in Brunch, because that’s what’s there. Why solve it the Elixir way? As a backend developer I may not want to mess with it. 38:51 – Panel: Another question about LiveView. From the video, from what I understand, is that the data that’s pulled from reads and rights? 39:26 – Chris: I hope this doesn’t sounds like a cop out answer. My answer is that you will handle any system you are building it in Elixir. If you want to have durable state you would use existing tools that you have already. 40:17 – Panel: The facilities you built around the LiveView, is it valuable for someone to... 40:42 – Chris answers the question. 41:22 – Panel: Another question on how LiveView works. Is that dependent on there being a JavaScript connection? 41:49 – Chris: Answer to that is if you are... 42:50 – Chuck. 42:53 – Chris. 43:29 – Panel: How is Fire Nest coming along? 43:38 – Chris: I won’t say it’s steady progress, but it’s coming along. We are working on it. 44:53 – Panel: That was exactly what I wanted to hear. 45:00 – Advertisement. 45: 42 – Panel: The new developments are happening outside of the community of Phoenix, right? 46:07 – Chris: People think Phoenix is “heavy,” but it really isn’t. It’s really I want 80% and the teams and communities can build on top of that. Not in core. Not everyone needs X feature. No reason to shove it in core. It’s not about having it being “lighter.” I am developing resisting the urge to do it because someone says so. 47:40 – Panel: Phoenix for me feels like it’s baked. There really isn’t anything that is lacking. It’s extensible. It’s done. That’s exciting. These add-ons like LiveView are a great plugin. 48:23 – Chuck: How do people keep in touch with what you are doing and your projects? 48:51 – Panel: Anyone on the team working with Elm? 49:00 – Chris answers this question. Elm has been on my radar, but haven’t gotten into it, yet. Not in the foreseeable future either. 50:20 – Chuck: Picks! Links: Chris McCord’s Website Chris McCord’s Twitter Chris McCord’s GitHub Chris McCord’s YouTube Chris McCord’s LinkedIn Chris McCord’s Medium Chris McCord’s DockYard Posts Chris McCord’s Video Chris McCord’s Keynote Talk Elm GitHub – Morphdom GitHub – Drab Fire Nest Article on LiveView Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Charles Geeking-out about the space stuff. Self-fastening pants – Velcro Book: Soft Cover IO Docking station Mark The Talk Fire Nest Project Josh Website: SmoothTerminal.com Eric Earthrise – Apollo 8 – 1968 picture Earthrise Wikipedia Podcast – American Life Chris Phoenix 1.4 Book Phoenix Programming Book