Join our weekly discussion about how to build top end Angular applications and become an Angular expert.
Similar Podcasts

Flutter 101 Podcast
Weekly podcast focusing on software development with Flutter and Dart. Hosted by Vince Varga.

Views on Vue
Vue is a growing front-end framework for web developments. Hear experts cover technologies and movements within the Vue community by talking to members of the open source and development community.

React Round Up
Stay current on the latest innovations and technologies in the React community by listening to our panel of React and Web Development Experts.
AiA 228: Issues with the Title, Front End Web Dev
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan TripleByte offers a $1000 signing bonus Panel Alyssa Nicoll Joe Eames Charles Wood Episode Summary This weeks panel, Charles Wood, Alyssa Nicholl, and Joe Eames discuss 2 articles: 1st The Great Divide by Chris Coyier and 2nd Tales of a Non-Unicorn by Laura Schenk. These articles tell of the broad meaning for “Front-End Web Developer” talking of how “HTML + CSS along with JavaScript” all fall under the same title causing confusion with job interviews and even once a developer gets into the job. It is neat to hear perspectives of Alyssa Nicholl and Joe Eames together as Alyssa is more on the HTML/CSS side of Web Dev and Joe Eames is more with the JavaScript side. The panel also discusses difficulties with interviewing for jobs. Charles Wood leads a discussion on what the interviewers could improve on in hiring the people they actually want. The panel shares experiences of not getting jobs for reasons that are not super valid. They also touch on the pay difference between the 2 sides of the “WebDev” job description. Links The Great Divide by Chris Coyier The Refactoring UI Youtube Tales of a Non-Unicorn: A Story About The Trouble with Job Titles and Descriptions Why Everyone Is Fighting About CSS/UX and JS Economics CodePen Job Posting Picks Joe Eames: The Refactoring UI Youtube The Refactoring UI Steve Schoger Twitter NestJS Charles Wood: The Checklist Manifesto: How to Get Things Right by Atul Gawandi Alyssa Nicoll: 100 Days CSS Challenge
AiA 227: Source Maps in Angular with Kevin Kreuzer
Sponsors Sentry- use the code “devchat” for $100 credit Angular Bootcamp Triplebyte CacheFly Episode Summary In this episode of Adventures in Angular, the panelists talk with Kevin Kreuzer on source maps. Kevin is a freelance Software Engineer from Switzerland and currently is a part of the frontend architectural team for a company called Schaltstelle. He also regularly writes blog posts on Angular topics, contributes to opensource projects and is the co-founder of a startup – Trasier. Kevin talks about what led to the development of source maps, how they are generated and explains their working in detail. He elaborates on various approaches of deploying source maps to production without revealing the source code and gives tips on solving issues that come up. The panelists discuss about using these maps for templates (CSS, HTML, etc.) and briefly touch on NestJS. Links Kevin on Medium Kevin’s Twitter Kevin’s blog - Angular in Depth Picks Shai NestJS Capturing stage in events Why We Sleep Alyssa Angular Air - Dry Forms with Sander Elias Charles HubSpot Eero Kevin Trasier Uphill Conference - Bern, Switzerland Enhancement for Medium stats Special Guest: Kevin Kreuzer.
AiA 226: Ionic with Mike Hartington
Sponsors Sentry use the code "devchat" for $100 credit Angular Bootcamp Panel: Alyssa Nicoll Charles Max Wood Special Guest - Mike Hartington In this episode of Adventures in Angular, the panelists talk with Mike Hartington, who is a Developer Advocate at Ionic. They talk in depth about the recently released version of Ionic, future projects the Ionic team is working on and what’s out there for Angular developers. Show Notes: 0:22 - Advertisement - Sentry - Use code “devchat” to get two months free on Sentry’s small plan. 1:21 - Mike introduces himself briefly and explains what exactly Ionic is. 3:15 - Charles asks about the new features of the recently released Ionic version 4.0. Mike explains that even though they love Angular, they wanted to decouple from any full framework like that and ship the components as JavaScript web components and then provide wrappings from any available framework. They spent a year on working on it and tried to double down on framework specific tooling. 5:50 - Charles asks if Alyssa has worked on Ionic. She answers that she hasn’t but has heard a lot of good things about it. She asks Mike if Ionic is the same as NativeScript. While explaining the difference, Mike replies that the team likes to work on the web technologies’ side, so even if Ionic is deployed on any available OS, everything is rendered in the browser. Charles also talks about the differences between NativeScript and Ionic. 7:38 - Alyssa asks if there is any specific popular framework or groups of people using Ionic. Mike answers that a lot of their user base consists of Angular developers, but they are seeing growth elsewhere too. 8:40 - Charles mentions that people like the fact they don’t have to learn different technologies for different platforms while developing apps, and prefer to do it by porting work from one platform to another. Mike agrees while saying that Ionic is a great option for that and it comes with a decent UI. 9:30 - Charles asks about Electron, if it’s the same codebase. Mike answers that Electron is quite new to them, but they are building an option for the native compiler that solves many technical issues and introduces new ideas on how to work with common APIs for IOS, Android and Electron. 12:02 - Alyssa asks how does Ionic compare to various UI themes and whether it can be customized. Mike answers that they have two themes - an iOS theme and a default material design theme. He says that they also have an option of creating custom themes using CSS variables. 13:30 - Charles asks if they have an update to the UI builder as well. Mike answers in affirmative and explains that they are working on a tool called Studio and proceeds to give some historical background on how they got there. He elaborates on the features of Studio. 15:40 - Alyssa asks if the tool is still under development or they are ready to start using it. Mike answers that a small group of users is using it and they are focusing on enterprise users currently. 16:50 - Charles asks about the next steps after Ionic 4.0. Mike explains in detail says that they want to work on some Angular tooling and on maintaining an update schematic. 18:17 - They discuss on how having different options help developers and users make flexible decisions leading to better products. 19:15 - Mike says that he is going to be at VueConf in Florida in March and Ng-Conf in Salt Lake City, and he is active on Twitter, Reddit and Instagram. 22:36 - Charles asks if there is any tutorial on Ionic for beginners. Mike asks users to search for “Ionic 4 Crash Course” - a 15-minute video encapsulating everything that they need to get it up and running. 22:35 - Advertisement - Angular Bootcamp 24:20 - Picks! 28:04 - END - Advertisement - CacheFly! Picks: Alyssa dto Charles Modern Medicine Keeping perspective on things in general Mike Tidying Up with Marie Kondo Special Guest: Mike Hartington.
AiA 225: Data and Page Content Refresh Patterns in Angular with Eyas Sharaiha
Sponsors Sentry use the code “devchat” for $100 credit Angular Bootcamp TripleByte Panel: Charles Max Wood Joe Eames Ward Bell John Papa Special Guest: Eyas Sharaiha Notes: This episode of Adventures in Angular has the panelists speaking with Eyas Sharaiha, who is a software engineer working for Google, working primarily with Google Maps . Eyas mostly does back end and infrastructure work, which gives him an interesting view of Angular. The panelists and Eyas discuss his article Data and Page Content refresh Patterns in Angular. Eyas talks about the most common mistakes he sees in using Angular, namely transforming observables and then subscribing to them too early or too late, and putting certain kinds of data transformations in places where they end up making the code a lot less clear. His approach in his articles is to walk readers through with trial and error, rather than laying down some sort of law. Eyas lays out how he deals with changes in Angular, naming the three best things to do to use Angular and RXJS correctly, emphasizing the importance of looking for side effects. His rule of thumb is that if the observable does anything other than the data it is admitting, then something is probably wrong. The panelists go on to discuss the usefulness of observables. The ask Eyas what the most common code smells he finds in angular apps that frequenly use observables and how he would correct people. Eyas again emphasizes side effects or mutation as a sign of a deeper problem, cautions people against bending over backwards to use an observable, and discusses the importance of unpacking an observable at the correct time. He encourages listeners to try out the ergonomics of AsyncPipe to combine observables where possible, and the importance of using observables correctly. The shift in Angular becoming more about learning RXJS and non-Angular things than it is about Angular is discussed and length, as well as the difficulty to relate Angular to other things. Eyas feels that this trend has taken away some of the magic of Angular. In fact, NG Conf’s annual survey revealed that the top struggles are RXJS and architectural guidance. The panelists emphasize that programmers should ask themselves why they are doing things this particular way, and to seek creative solutions using different types of programming, such as procedural, reactive, idiomatic, and object oriented programming. Terms: Observables RxJs Async pipe TypeScript Reactive programming Inheritance NGRX Picks: Joe Eames Talk List over at NG Conf Five Minute Marvel John Papa http://realtalkjs.com Ward Bell https://auth0.com/blog/ngrx-facades-pros-and-cons/ Charles Max Wood http://libsyn.com Purple seat pad vrbo.com Eyas Sharaiha Schema-DTS – TypeScript library for Schema.org Bad Blood Special Guest: Eyas Sharaiha.
AiA 224: The Irrational Demonization of Two-Way Data-Binding in Angular with Ben Nadel
Sponsors Sentry use the code “devchat” for $100 credit Angular Bootcamp TripleByte Cachefly Panel Joe Eames Aaron Frost Alyssa Nicoll Ward Bell Joined by Special Guest: Ben Nadel Summary Ben Nadel introduces the irrational demonization of two-way data-binding in Angular as a topic for the panel. The panel discusses the survey that put Angular in a poor light and favors React; acknowledging that a fair survey is hard to find. The panel considers how technologies that are now out of favor changed the web. The panel compares Angular to other frameworks and considers what to they can do about other frameworks. Ward Bell invites the panel to try other frameworks and find what is beautiful, not just ignore them or diss unknown frameworks. Ben talks about his companies move away from Angular and the opportunity this presents for him to learn about other frameworks. Links https://www.invisionapp.com https://www.bennadel.com/ https://github.com/BenNadel https://twitter.com/BenNadel https://www.facebook.com/adventuresinangular/ https://twitter.com/angularpodcast Picks Joe Eames https://www.ng-conf.org/ https://elm-lang.org/ Felt https://thinkster.io/ Aaron Frost https://blog.angularindepth.com/connecting-the-dots-where-hard-work-and-dreams-can-lead-you-2e8ef44096b Ward Bell Learn how to sharpen a pencil Ben Nadel http://icon.no.sh/ https://www.netlify.com/ The Marvelous Mrs. Maisel http://freakonomics.com/ https://www.npr.org/podcasts/510308/hidden-brain Special Guest: Ben Nadel.
AiA 223: Angular Ivy, React Fiber and Digging Into Frameworks' Source Code with Netta Bondy & Uri Shaked
Sponsors Sentry use the code "devchat" for $100 credit Angular Bootcamp TripleByte Panel Charles Max Wood John Papa Ward Bell Joined by Special Guests: Uri Shaked and Netta Bondi Episode Summary Netta is a senior web developer at a startup called Reali, although her degree is in social work. She also co-founded the largest community of women in research and Development in Israel. Netta and Uri are here to talk more about the talk they gave at FrontEnd Con about Angular Ivy and React Fiber. They share how this talk came to be. Uri and Netta compare Angular Ivy and React Fiber, which take different approaches to managing the cycle of code. The panel discusses whether or not there is an advantage to digging into the framework. Netta and Uri talk about some of the processes they explored while investigating Angular Ivy and React Fiber. They share techniques for not getting lost in the source code and delve into some of the differences between Angular Ivy and React Fiber. Through their investigations, they learned that the primary difference between the two is in the event delegation pattern. They advise that when deciding which technology to use, companies should consider which one will be easier to hire new employees for. The panel discusses whether or not big tree frameworks have become a commodity. Most new frameworks focus on making builds smaller and faster, but they would like new frameworks to have more benefits than just speed. The show is finished by Uri and Netta sharing how to track features down in Angular Ivy and React Fiber. Links Angular Ivy React Fiber Virtual DOM Incremental DOM Ajax jQuery Lin Clark - A Cartoon Intro to Fiber - React Conf 2017 Netta Bondy & Uri Shaked - React Fiber vs. Angular Ivy / FRONTEND CON 2018 Follow DevChat on Facebook and Twitter Picks Charles Max Wood: Package Thief vs. Glitter Bomb Trap Help Charles move Devchat from WordPress to Eleventy and get an hour of coaching. Write show notes for 3 episodes and tag it, Charles will do an hour of coaching with you. John Papa: NG Atlanta Ward Bell: BlacKkKlansmen Uri Shaked: NG Atlanta Why We Sleep Uri is on Twitter as @UriShaked and github (urish) Netta Bondi: Hassan Minaj: Homecoming King Iliza Shlesinger: Elder Millennial Netta is on Medium and Twitter (@_bondit_) Special Guests: Netta Bondy and Uri Shaked.
AiA 222: 10 Lessons Learned in Enterprise Angular Development with Chaz Gatian
Sponsors Sentry use the code "devchat" for $100 credit Angular Bootcamp TripleByte Panel John Papa Alyssa Nichol Joe Eames Charles Max Wood Joined by Special Guest: Chaz Gatian Summary Chaz Gatian joins the show to discuss his blog post, “10 Lessons Learned in Enterprise Angular Development”. He starts by defining enterprise and the panel dives into the first point of his blog post about not making boneheaded mistakes. Next, the panel discusses utilizing view components and compare the ways they organize their code. Which touches on a couple more points, bubbling your components and packaging only if you are going to share. Alyssa Nichol asks Chaz about teams developing a fun application and breaking out of the research loop. Links https://blog.angularindepth.com/@Cgatian https://blog.angularindepth.com/10-lessons-learned-in-enterprise-angular-development-cc4bd194fcb7 https://twitter.com/Cgatian https://twitter.com/angularpodcast https://www.facebook.com/adventuresinangular Picks John Papa https://medium.com/ Alyssa Nichol 8th anniversary today! Blow up Christmas At-at Joe Eames The Quacks of Quedlinburg Renegade Game Studios Spell Smashers, Game Charles Max Wood https://mckirdytrained.com/ Garmin Forerunner 235 Watch https://www.stgeorgemarathon.com/ Chaz Gatian Improved UX with Ghost Elements + Angular 7 Animations Special Guest: Chaz Gatian.
AiA 221: Angular Schematics from the Ground Up with Brian Love & Kevin Schuchard
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 Special Guests: Brian Love and Kevin Schuchard.
AiA 220: Creating a Great Community with Juan Herrera
Panel: Charles Max Wood John Papa Aaron Frost Special Guest: Juan Herrera In this episode, the panelists talk with today’s special guest, Juan Herrera. The guys talk about community and how the Angular community is different than others out there. The following topics are discussed: calls for proposals (CFP), talking at conferences, Meetups, and reaching out to others within the same field as yours. The team emphasizes how meeting and networking not only creates great business connections, but great lasting friendships, too! Check it out! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:52 – Chuck: Hello! Our panel is Eric, John, and myself. Our special guest today is Juan Herrera! 1:00 – Panel and guest go back-and-forth. 2:28 – Chuck: Let’s discuss how to think about community locally, nationally, and internationally! 2:39 – Guest talks about his background and his work in Columbia. 4:00 – Aaron: I will give my talk in Spanish and it will be epic. I think we should start a hashtag “bonniemademedoit.” Aaron is talking about Bonnie and how she’s inspired Juan and many, many people. 5;18 – Chuck: She is so enthusiastic about this stuff you have a hard time telling her “no.” 5:32 – Guest. 6:00 – Panel: I am proud that she is apart of our community, which is our topic today. 6:26 – Guest: Yes, I think these conferences help make people pumped-up about these sort of things. 6:53 – Chuck: I am curious when talk about community – talking about global communities they are similar to other Meetups and incorporate their own way of doing things. How do you find that your particular area is unique in its own way? 7:32 – Guest: When we start this community I want to see what’s already out there? Once I know that I was trying to mimic what was already out there. In addition to that I went out of my way to figure out how to make people feel welcomed and find our own niche. 10:27: Panel: Hey – let’s create a community! I think sometimes it’s deliberate and other times it just happened. It sounded like you were very intentional. How did you get people involved? How did you get the word out? How did you get people to give talks? 11:10 – Guest: Yes that is a great challenge for us. Great question! I wanted to help people gain exposure and to help them participate at the conference. After giving their talk we give them a special gift. It can be a shirt or sticker or something. It seems enough for people to come and participate. We realized some people were scared to participate b/c imposter syndrome kicked-in. We made sure they felt comfortable and it helped them to participate. 15:00 – Panel: Yeah it sounds like 300 is a very solid conference. Good job! 15:18 – Chuck: Yeah they compare it to the bigger conferences when the local conferences are just as strong and good. Sometimes the smaller conferences are really nice b/c they are more intimate. 16:05 – Panel: I am not a fan of these massive conferences. Great, but you can’t have conversation with 50,000 people. You go to the vendor floor – it’s loud and dark. I go to conferences to talk and listen to them. I like to listen to their challenges and hear stories. 17:01 – Panel: I enjoy the variety. 17:48 – Panel: Just the quality of people that were there was fantastic. NG VIKINGS is a great one to go to! 18:10 – Panel: I saw the conference for New Zealand? And the one that is in Antarctica?! 19:10 – Panel: Some people say: I don’t know how to get involved with X conference? I have a hard time giving advice b/c we all have different backgrounds. Who wants to present on Chrome Frame? Or... 21:07 – Guest: Not everyone is outgoing nor comfortable being in front of an audience. However, just practicing helps! 21:33 – Advertisement: Get A Coder Job! 22:12 – Panel: Chuck, I want to hear about your community! 22:25 – Chuck: I can’t go to a development conference that doesn’t know who I am. I thrive off of people and connecting with them. There are a lot of great opportunities from learning from folks. The email went out this morning and get in the general channel and say: What do you listen to? What are you up to? It’s nice to hear feedback. 25:54 – Panel: I appreciate the work you’ve done within the community, too, Chuck! 26:08 – Panel: My community I’ve been around the block for about 20+ years. I get into one technology and then bounce from one to the other. I’ve had the blessing to be apart of many different communities. I did a lot of JavaScript back in the day and then left when it was a mess. These communities all have something similar: people come together. They want to find others who look/act like them! These experiences change people’s lives! 28:11 – Guest: Through these communities I’ve made a lot of friends and great colleagues. Not just professional but also personal. 28:44 – Panel: Yep the people that I’ve met through Twitter and conferences. 29:00 – Panel. 29:33 – Panel: I was in Poland a few weeks ago and I met some guys – two different Mike’s. I love how down-to-earth these guys are and I think it’s awesome to meet these great people at these conferences! 30:11 – Panel: Go to Angular conferences if you can! 31:25 – Panel: I tell people to do the same thing! 33:17 – Guest: Yeah there are people out there that are introverted, but know that other people are like you, too! Reach out to people before the conference and Tweet at them! Invite people to your group and meet-up at conferences and have a coffee! 34:55 – Panel: I meet a lot of people on Twitter. 35:51 – Panel: I think we are getting to the end and I need to say this. The angular community is a bit different compared to other communities. One thing that this community doesn’t have is the focus of the community. On top of the community are Rob, Steven, Jewels and Naomi and others! I think the Angular team themselves really care! I know they care. 38:09 – Guest: I completely agree with you, Aaron! We appreciate it! 38:25 – Chuck: To wrap-up let’s talk to you, Juan, about where communities should be going to take care of the people 38:45 – Guest: Yeah, what are we going to do next year? Are we going to do Meetups? Do they need something else? What are the needs of our members today and tomorrow? We decided to change the format. We realized that Meetups are great but they are 20-minute talks and they aren’t enough for our members. We do 4 hour Meetup that is called the MEGA MEETUP! 41:00 – Fresh Books! END – CacheFly! Links: Vue jQuery Angular JavaScript Python React Cypress Meetup Conference in Antarctica! Guest: Juan Herrera – Twitter Guest: Juan Herrera – GitHub Sponsors: Angular Boot Camp Cache Fly Picks: Aaron Harry Potter Play Talk from Angular Connect – Grant Timmerman – Google Team CFP: ngVikings 2019 CFP: ngConf @aaronfrost – Twitter! Chuck DevChat TV transferring from WordPress to a static site. Guest JS – library CFP in Columbia! (2019 conference) @jdjuan – Twitter! John Forbes Article: How to start a conversation... Special Guest: Juan Herrera.
AiA 219: Testing Angular Applications with Michael Giambalvo
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 Special Guest: Michael Giambalvo.
AiA 218: Developer Freedom with Charles Max Wood
Panel: Charles Max Wood In this episode, Chuck discusses his new podcast show titled the DevRev. Chuck also asks you very honest questions that will get you thinking; such as: What does freedom mean to you? How do you want your life and career to unfold? How can we (at the DevRev) help you with your career decisions? Check out today’s episode to hear about this and much more! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:52 – Chuck: Welcome! The panel is myself! I had this idea bouncing in my head for a while and I got some verification while waiting for my guest and panelists to show up. The show that I am producing is called, DevRev and it’s based on developer freedom. 2:22 – Chuck: Some developers love to contribute to open source. Some developers say that they don’t get along with their boss or coworkers. Others will say that they aren’t learning and feel like they are falling behind. I am on the B team and want to be on the A team. It boils down to: are they getting the freedom to do what they want to do. 3:45 – Chuck: I haven’t been happier with my job since I’ve gone self-employed. Having a sense of freedom could have a different definition for you. Perhaps you are looking for time to go hiking, skiing, and so on. For you it could be programming is to help you with your hobbies. What kind of opportunities can YOU create for yourself in programming? 5:32 – Chuck: When I got into programming (at first) I didn’t have a real clear idea. My old boss would have these ideas and would change the day after our meeting, which was frustrating. Freedom could be things from the things that don’t make you happy. Maybe an office space for you doesn’t work for you. 6:41 – Chuck: 1.) Freedom in life to do what you want! 2.) Freedom in your career to elevate you where you want to be. Chuck: Freedom to pursue the things that I care about vs. not pursue the things I don’t care about. First of all how do we take care of the big things? How do we reach our long-term goals? Finally, how do we remove all of the other interrupts and optimize our experience day-to-day to achieve things we want to achieve? 8:48 – Chuck: I was talking with Chris and his ideas are centered on with helping the community. We talked about the things that hang him up, too? 9:26 – Chuck: “I am swamped at work – what do I do?” I want to help you solve your issues. What’s your idea of freedom? 10:15 – Chuck: How do you feel fulfilled? Let’s find you a place that will payoff for you. There are all kinds of ideas around this. That’s where I want to dive-into! 11:11 – Chuck: If there are any questions that you have in particular – shoot me a message! I will gladly answer your questions and check out TheDevRev.com! I have some friends who run a financial podcast – 2 Frugal Dudes. I want you to ask the questions that are irking you. 12:36 – Chuck: I feel like there are tons of opportunities for developers out there that we can help you find what’s a good place for you. Find what you want out your career and life – find something that will line-up for you. Even if you are trying to find your first job! There are a lot of options out there. I am putting the show out on YouTube and Facebook! END – Advertisement – Cache Fly! Links: Discord App Discord App – DevChat TV TheDevRev.com Sponsors: Angular Boot Camp Cache Fly Picks: Charles zoom.us repurpose.io
AiA 217: Mastermind Groups for Startups, Consulting & Career Growth with Sean Merron
Panel: Charles Max Wood Aaron Frost Shai Reznik Divya Sasidharan Joe Eames Lucas Reis Special Guest: Sean Merron In this episode, The panelist of Adventure In Angular, View on Vue, React Round-Up, and Ruby Rogues and JavaScript Jabber speak with Sean Merron about Mastermind Groups of Startups and much more. Sean is the founder of today's topic and product “Mastermind Hunt.” This product is design to skillfully find a mastermind to take your business and skills to the next level. Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 3:00 – Webinar announcement January 3rd, 2p EST. 4:10 - Sean talks about the importance of a Mastermind and his evolvement in mastermind groups. Sean breakdowns what exactly what a mastermind is about. 6:10 - Charles ask the panelist if they have engaged in Masterminds. Shai talks about his experience and seeing one-sidedness in Masterminds. Sean talks about how to avoid this issue and staying on track. Sean shares on how to keep the meeting moving forward and meet accountability tasks. 10:10 - Joe asks about examples of chatting on topics with co-workers and how is this different from masterminds. And how to keep topics on track. Sean provides using the round robin method to give each person a chance to bring their needs to the table. Sean talks about how developers share advice and topics in Masterminds. 14:43 - Charles shares about how this works in using exercise workbooks as a group and who the rotation works for the hot seat. Sean explains that this is used to find others at your same level to help one another. 16:50 - Shai ask about the benefits of mastermind, but how can we integrate higher level issues among a group. Sean shares a story about meeting and benefits of networking in Masterminds. Sean and Chuck continue with the power of networking among these types of groups. 22:00 - Charles talks about the complexity of personal issues. Shai asks about how to build a mastermind. Sean gives examples of formats and schedule, number of people, and how to conduct successfully. Sean gives examples of technologies to use to help conduct masterminds, like Facebook groups, Skype, Zoom. Sean explains how this led to building mastermindhunt.com 27:00 – Advertisement: Get A Coder Job! 27:00 - Charles talks about how he did a lunch meetup as a mastermind. Lucas gives examples of guilds in his job. Lucas explains the guilds and how this works among the software development team. Lucas shares about presenting in a guild. Lucas says this is great for accountability and success. 30:00 - Sean asks about the size or how many people are in the guild. Lucas mentions that if you do not understand something, bring it to the guild. Sean mentions how this could help shy people and build trust. Sean talks about “Friend D A” 34:00 - Charles again talks about that BrownBag lunch mastermind. Charles talks about how to keep masterminds on track and not a chatfest. Joe asks about the accountability goals. Sean talks about how this works in Mastermind Hunt. Sean gives examples of how to keep people accountable in fun ways. 37:00 - Shai talks about having to shave his head when he was not meeting accountability goals. Sean continues about respecting people’s time and keeping on topic with hot seat questions. 39:00 - Shai asks about how to approach people who are not meeting goals and take-up to much time. Sean says the person with the best relationship should approach the person before they have to bump them out of the mastermind spot. 42:00 - Charles talks about EntreProgrammers as a mastermind and the freeform style of the format. Charles talks about leaving the group if it is not meeting your value needs. 44:00 - Sean talks about the introduction and application programs to enter into a mastermind. Lucas talks about diminishing quality of a mastermind, and how he raised the quality of engaging in a way that heightens the program. Sean shares more aobuu the initial attitude of the person who starts the meeting. 49:00 - Divya ask about those who are not hitting their goals, but how do you keep them engaged without leaving the group. Sean mentions breaking down the goals or create achievable goals. Sean talks about figuring out the organization and finding where the issues are at that might be the problem to hitting goals. 51:00 - Divya ask about how enthusiasm can diminish about how to keep that from happening in masterminds. Sean says you have to be consistent with your goals and make it fun. 55:00 - Shai gives a quick recap of masterminds. Shai ask about how to rotate the hot seat. Sean give a webinar link for mastermindhunt.com/devchat on January 3rd, 2pm EST. 57:30 – Advertisement – Fresh Books! 30-day free trial! END – Advertisement – Cache Fly! Links: Sean’s Twitter 2frugaldudes podcast Sean’s LinkedIn mastermindhunt.com mastermindhunt.com/devchat Sponsors: Angular Boot Camp Fresh Books Get a Coder Job Course Cache Fly Picks: Shai Bob Proctor Joe Coolstuffinc luxor NG Conf Minified Lucas Radical Candor Divya Alan Watts Framework Summit Videos Several Short Sentence about Writing Charles CES - devchat.tv/events Modern Medicine Sean (757) Area Code RevolutionConf.com Special Guest: Sean Merron.
AiA 216: Building a Complete Web Application from Scratch Alone with Amir Tugendhaft
Panel: Aaron Frost Brian Love Special Guest: Amir Tugendhaft In this episode, Aaron and Brian talk with Amir Tugendhaft who is a web developer who is located in Israel. He finds much gratification developing and building things from scratch. Check out today’s episode where Aaron, Brian, and Amir talk about just that. Other topics include UI Design, Flexbox, UX design, PrimeNG, and ag-Grid. Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:52 – Host: Welcome! Today’s panel is myself, Brian, and our guest is Amir Tugendhaft! 1:13 – Guest: I am a developer and experience with Angular and React. 1:56 – Host: You spend your days/nights there? 2:03 – Panel: He is committed. 2:08 – Host: I am going to back up a second, and Brian could you please introduce yourself, please? 2:26 – Brian: I am the CETO at an Angular consulting firm (Denver, CO). We have the pleasure with working with Aaron from time-to-time. My Twitter handle is @brian_love – check it out! 2:52 – Host: What is CETO stand for? 2:59 – Brian answers the question. Brian: I oversee the crew among other things. 3:31 – Host: What do you want to talk about today, Amir? You are the guest of honor today! 3:40 – Guest. 4:00 – Host: That is a lot of information – that might be more than 1 episode. We have to stay focused! 4:14 – Host: I read one of your recent blogs about Cross Filled Violators. I met you through your blog before we did the Host: Give us your own ideas about starting your own app. 4:50 – Guest answers the question. 6:17 – Host: I am biased. But here is a fact. I used to work on a large team (60 people) and everyone committing to the same page app. We were using Angular.js 1.5, which I think they are still using that. I know that it worked but it wasn’t the easiest or fastest one to maintain, but it worked. 7:05 – Brian. 7:10 – Host: What are you trying to do? React doesn’t fulfill that need. I think you are being hyperballic and using extreme cases as the norm. Let’s be honest: we do cool stuff with jQuery plugins when we didn’t have a framework. When they say that the framework is stopping them then I say: I agree to disagree. 8:00 – Host: What do you think, Amir? 8:04 – Guest: I don’t have preferences. I try to build applications through the technologies and create components and simple applications. 8:30 – Brian. 8:33 – Guest: You create the component, and then... 9:21 – Brian: You don’t have to have a template file and another file – right? 9:35 – Guest. 9:48 – Host: I do in-line styles and in-line templates. One thing I learned from React is that I like my HTML, style and code. I like it being the same file as my component. I like that about that: I like single file components. This promotes getting frustrated if it gets too big. Yeah if it’s more than 500 lines than you have to simplify. That’s one of the things that l like. 10:47 – Brian: Modules versus... 10:55 – Guest. 11:07 – Host: I think in React and Vue you have the word module but in JavaScript you have a file that exports... 11:26 – Host: I have my opinion here and talking with Joe. He made a good point: at a certain level the frontend frameworks are the same. You could be doing different things but they basically do the same thing. 13:57 – Guest: Basically what that means is that the technology used it will do the same thing. Your patterns and practices are huge. 14:17 – Brian: If you are talking about the 3 popular frameworks out there – they are basically doing the same thing. I like Angular a little big more, though. Like you said, Aaron, people tend to pick the same one. I like the opinionated things about Angular. You get properties, components or called props or inputs you are getting a lot of the same features. It comes down to your personal preference. 15:31 – Host: What else Amir? 15:35 – Guest: Let’s talk about the UI. 16:05 – Brian. 16:08 – Guest asks a question. 16:25 – Brian: How have you tackled this problem? 16:34 – Guest: I kind of ran with it. If there wasn’t something that I liked I started from scratch, because it really didn’t feel right. 16:51 – Brian: I am an enemy of starting over type of thing. You have a lot of engineers who START projects, and they can say that they start this piece, but the experts and choice team members have what it takes to ship a feature. I mean fully ship it, not just 80%, but also the final 20%. I think it takes a lot of pose decision making to say I want to rewrite it but not right now. I still need to ship this code. I have always been a bigger fan as not rewriting as much as possible; however, if you started with good patterns then that’s true, but if you are starting off with bad patterns then maybe yes. I like that opinion b/c you have to start right. Brian: How do you do your CSS? 19:05 – Guest. 19:52 – Advertisement: Get A Coder Job! 20:30 – Brian: How do you make those decisions, Amir? 20:39 – Guest: I see something that I like and ask myself how do I apply this to my design and I start scaling things. 21:50 – Host: Are you using a tool like Sketch for your initial UI design? 22:05 – Guest. 22:54 – Host: I worked on a project where the client had a designer (UX). 24:00 – Host and Guest go back-and-forth. 24:51 – Host: I am sure it’s all about the quality from your designer, too. Hopefully it works well for you and it’s quality. 25:18 – Host: There is a lot to building an app from scratch. I am not a good designer. I am not a designer – I mean straight-up. I got nothing. I appreciate team members that can do that. 26:06 – Guest: Do you write...? 26:35 – Host: Only on the most recent project. The designer didn’t own the HTML CSS but he initially wrote it and then gave it to me and now I own it, and it’s in components. If he wants updates then I have to go and make changes b/c he doesn’t know Angular. If it’s a sketch or a PNG you have to make it look like that. That’s what most of my career has been. Host: HTML and CSS got me 762x easier once Flexbox came around! I know there is a decimal there! 28:23 – Host talks about Flexbox some more. 28:42 – Guest asks a question. 28:50 – Host: I suppose if I really had heavy needs for a table then I would try CSS grid could solve some problems. I might just use a styled table. 29:12 – Brian: ag-Grid or something else. 29:21 – Host: On this recent project...I’ve used in-house design and other things. If I ever needed a table it was there. I don’t rebuild components b/c that can get expensive for me. 30:50 – Brian: Accessibility. 31:00 – Host: Your upgrade just got 10x harder b/c you own the component loop. I really don’t build tables or drop-downs. Only way is if I really need to build it for a specific request. 31:30 – Brian. 31:58 – Host: Let me give you an example. You can think I am crazy, but a designer gave me a drop-down but he told me to use PrimeNG. I had the chose of building my own drop-down or the designer has to accept whatever they gave him. I made the UI make what he wanted and I made the drop-down zero capacity and then... Host: When you click on what you see you are clicking on the... Host: Does that make sense? 33:35 – Guest. 33:50 – Host. 34:25 – Brian: That is interesting; remember when... 34:58 – Host: We will send this episode to Jeremy – come on Jeremy! Any last ideas? Let’s move onto picks! 35:20 – Advertisement – Fresh Books! 30-day free trial! END – Advertisement – Cache Fly! Links: Vue jQuery Angular React C# What is a UX Design? UI Design Flexbox Sketch ag-Grid PrimeNG Brian Love’s Twitter Aaron Frost’s Medium Amir’s Medium Amir’s Twitter Amir’s GitHub Amir’s LinkedIn Amir’s Facebook Sponsors: Angular Boot Camp Fresh Books Get a Coder Job Course Cache Fly Picks: Aaron Movie: “A Star Is Born” Concept - Model Driven Forms Amir Puppeteer Arrow Function Converter Brian TV Series: “The 100” Angular Schematics Special Guest: Amir Tugendhaft.
AiA 215: “Progressive Web Apps” with Aaron Gustafson / Live at Microsoft Ignite
Panel: Charles Max Wood (DevChat T.V.) Special Guests: Aaron Gustafson In this episode, the Chuck talks with Aaron Gustafson who is a web-standards and accessibility advocate working at Microsoft. Aaron and Chuck talk about PWAs and the ins and outs of these progressive web apps. Check out today’s episode to hear more! Show Topics: 0:36 – Chuck: Our guest is Aaron, say HI! 0:41 – Aaron: Hi! I have been working on the web for 20 plus years. I am working on the Edge team for accessibility among other things. I have done every job that you can do on the web. 1:08 – Chuck: That is one of OUR publications? 1:14 – Aaron: No the communities. I joined the staff as editor in chief for 1.5 year now. It’s a nice side project to do. 1:36 – Chuck: I thought it was a commercial thing. 1:40 – Aaron: No it’s volunteer. 1:52 – Chuck: Talk about your web background? 2:02 – Aaron: I remember the first book I got (title mentioned). My first job on the web (cash) I was the content manager in Florida and this was in 1999. Gel Macs just came out. I relocated from FL to CT and worked for other companies. I got into CSS among other things. It’s been a wild ride and done it all. 3:52 – Chuck: Let’s talk about web standards? 4:05 – Aaron: It depends on the organization and what the spec is and where it originates. It’s interesting to see how HTML developed back in the day. When standardization started working then everything started to converge. Everything is a little different now. Some specs come out from companies that... (Apple, Responsive Images, and Grid are mentioned among other things.) 7:37 – Chuck: We set up to talk about PWAs. Where did PWAs come from? 7:57 – Aaron: Modern web design, best web applications. Being secure. One of the underpinnings came out from Google and they have been supporters of that. Firefox is working on installation as well. The Chrome implementation is weird right now, but it becomes an orphaned app. It’s like the old chrome apps where in Windows you can install from the Microsoft store. But the case of Chrome you don’t have to go through the store. 10:14 – Chuck asks a question. 10:24 – Aaron answers. 11:53 – Chuck: What makes it a progressive web app rather than a regular website? 12:05 – Aaron: The definition is running on HTPS and... Aaron defines the terms that Chuck asks at 11:53. 12:43 – Aaron: Of course you can push forward if it makes sense from the baseline. 12:56 – Chuck: We have an Angular podcast, and we talked about PWAs and nobody had a good definition for it. 13:18 – Aaron. 13:22 – Chuck: What are the pros of having a PWA? Let’s start with the basics first. 13:33 – Aaron: The ability to control how you react to the network. We development is challenging maybe in other areas because of the lack of control and how your code gets to your users. Any special needs that YOU might have. Aaron goes into detail on this topic. 17:14 – Chuck: Is the service worker the star for PWAs? 17:20 – Aaron: In a way, kind of. Aaron goes into detail on this topic. Share 2 is mentioned, too. 19:42 – Chuck: If the service worker intermediates between the browser and the page / Internet would it make sense to have your worker have it load and then load everything else? Cause you have those Web Pack now. 20:14 – Aaron: Some people would consider it but I wouldn’t necessarily. I am not a fan for that. If anything goes wrong then nothing loads. I remember back when... 22:23 – Aaron: That is a lot of overhead. 22:34 – Chuck: I am wondering what is the best practice? How do you decide to pull in a service worker and then move into more complicated issues? 22:53 – Aaron: Progressive Web App where they talk about their evolution about this. 25:17 – Advertisement – Fresh Books! Code: DEVCHAT. 26:25 – Chuck: In order to be a PWA you don’t need to have a push notification. 26:38 – Aaron: I don’t think anyone would want a push notification from me. 27:12 – Chuck: What features do PWAs have? 27:18 – Aaron: Features? None of them really, other than push notifications, it’s just standard it’s going to make an App feel more App “y”. If that’s something you want to do. It’s up to you to determine that. There is going to be like push notifications – sending person new updates about the order. If you were a new site you want to make sure you are not doing a push notifications on everything cause that would be too much. Exercising care with the capabilities with what the users are doing on your computer. This is a person that you are dealing with. We need to seem less needy. Give users control of how they want to use it. For example, Twitter will give you that control per user. 30:56 – Chuck: Could you also do it for different parts of the page? 31:01 – Aaron: It’s different scopes. Your servicer worker has different scopes and it needs to be in the root folder or the JavaScript folder. You can have different workers but they will come from different scopes. 31:32 – Chuck gives a hypothetical example. 31:50 – You can do a bunch of different service workers. 32:11 – Chuck: This is why we create different hierarchies in our code. 32:26 – Chuck: Is there a good point where people can be more informed with PWAs? 32:40 – Aaron: PWA stats website and Twitter account with Cloud 4. 33:22 – Chuck asks a question. 33:26 – Aaron: Yes. If you are a photographer you don’t want to cash all of your photos on someone’s hard drive. We have to be good stewards of what is operating on people’s hard drives. Even something as simple as a blog can benefit from being a PWA. 35:01 – Chuck: Are there new things that are being added to a PWA? 35:12 – Aaron: A new feature is the background sync. Aaron: What is native and what is web? 36:33 – Chuck: Yeah it can detect a feature in your machine. Dark mode is... 36:48 – Aaron: It would be nice to see things standardized across the board. 37:00 – Chuck: How does this play into Electron or Android or...? Do those need to be PWAs? 37:16 – Aaron: It depends on what you are building. So I talked with people through Slack and they want total control. If you r desire is to shift the same experience then Electron can make a lot of sense. They will have to pay a premium, though, your users. If you are aware of that then go the Electron route. But for most cases then Electron might be overkill for you. You don’t need that extra overhead. 39:55 – Aaron continues. Aaron: I think the major benefit of PWA is... 41:15 – Chuck: The other angle to that is that in an Electron app does it make sense to use a PWA things? 41:23 – Aaron: Yes that makes sense. 41:34 – Unless for some reason you need to unlock into an older version, which I hope is not the case b/c of security reasons. 41:55 – Aaron continues. 42:34 – Chuck: Where can we find you? 42:35 – Aaron mentions Twitter and other sites. See Links! 43:02 – Advertisement – Get A Coder Job! Links: Ruby on Rails Angular PWA States Website PWA Twitter Electron Aaron’s Website Aaron’s LinkedIn Aaron’s Twitter Aaron’s GitHub Aaron’s YouTube Channel Aaron’s Medium Get A Coder Job Charles Max Wood’s Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Aaron Home Going by Yaa Gyasi Zeitoun What is the What Affect Conf. Charles Armada Special Guest: Aaron Gustafson .
AiA 214: NgRx Tips & Tricks with Adrian Fâciu
Panel: Charles Max Wood John Papa Special Guest: Adrian Faciu In this episode, Chuck talks with Adrian Faciu who is a developer for Visma and is a blogger. The panel talks to Adrian about his blog titled, “NgRx Tips & Tricks.” They ask Adrian in-depth questions about NgRx, among many other topics. Listen to today’s episode for more details! Show Topics: 0:00 – Advertisement: AngularBootCamp.Com 0:55 – Chuck: Hi! Our guest is Adrian Faciu. 1:10 – Guest: Hello! I am Adrian and I am a developer who works for a Norwegian company, but I live in Romania! 1:35 – Chuck. 1:36 – Guest. 1:47 – Chuck: The market is so global. I have talked with many different guests from different parts of the world – it’s really neat! It’s this global phenomenon. 2:12 – Guest: It’s a great thing! 2:23 – Chuck: They have an office where you live? 2:31 – Yes. 2:37 – Chuck: How are you guys using Angular over there? 2:47 – Guest: We have several different products. We customize using them with internalized tools. 3:04 – Chuck: Real quick let’s talk about your blog post. I will admit I am not that familiar with NgRx, so I will ask newbie questions. Now do you want to explain what this is? 3:41 – Guest: Sure! The short story of the article is I saw people doing things the hard way. And after I figured out some things, people encouraged me to write about my experience. 4:37 – Chuck: John Papa just signed-in! 4:53 – Guest: Yes NgRx is... 5:02 – Chuck: You used classes for all actions what do you mean by that? 5:05 – Guest answers the question into detail. 6:31 – Chuck: Let’s say we have a class that uses a log error... 6:42 – Guest: For example you have actions that... 7:02 – Chuck: When you use the reducer... 7:10 – Guest: There are other tricks we can use like keeping all of them in the same file... 8:00 – Guest talks about the union type. 8:24 – Chuck: You learned this by doing things wrong – what happens when you do these things wrong? 8:30 – Guest: If you don’t put all of your classes in the right file then you end up with a lot of files. If you don’t create hero types then you’d have to... 10:02 – Chuck: If you import user actions then does it import all of the other types? 10:08 – Guest: Import everything from that file. 10:17 – Chuck: If you have any questions, John, feel free to chime-in! 10:29 – John: Yeah I am scanning through this. The negative I hear a lot of through actions, it’s cause we create constants – the action class creators, it seems to cause an undue amount of stress. How much actual code do you actually have to write – how do you feel about that? 11:12 – Guest: I didn’t want to write all of this code! That’s what I wanted to avoid. 11:44 – John: I wrote them, didn’t like them, I went back to them... It wasn’t just that I created a new action I had to create the constant and other things – also the place you do the union type, I’d forget to do the union type at the end! If you don’t have all of those things then it won’t work. Even on a simple project I’d have 120 lines of code for a simple task. 12:49 – Guest: Yes. Sometimes I would forget this or that. I’d have to figure out what I did wrong. I went back and created classes for a lot of things. I like the benefits. 13:19 – John: I like your ideas and your tips in your blog. How do you feel about the NAMES of those actions? 13:55 – Guest. 14:51 – John: Important part is the naming of the string inside of it – that’s the value... So you can see the actions that are being displayed. 15:25 – Guest: If you didn’t do it right that’s where the problem would be. 15:38 – John: To me it’s a love/hate relationship b/c there is so much code to it. I usually copy and paste which means that I usually forget to change something. I agree, but I don’t’ like creating it. 16:05 – Guest: I’ve been trying to figure out a solution for it eventually I gave up. 16:23 – John: Moving onto effects – inside that happens inside of the Redux cycle – if you want to do something outside of it that’s when you do effects right? 16:40 – Guest. 16:49 – John: Using the effects is good or do it a different way? 17: 20 – Guest: It makes my components cleaner. I have seen projects that DON’T use it and it’s not the best. 17:36 – John: Like getting a list of customers... (I am using my hands and nobody can see me!) It’s weird to me to NOT use the effects! 18:52 – Guest: If you implement some type of caching then it’s everything to put everything in the state. 19:07 – Chuck: I haven’t used it as much as I would like, but I haven’t do much with it. 19:23 – John: I am curious from somebody hasn’t dove into it – does effects make sense to you, Chuck? 19:39 – Chuck: It seems like effects is a side effect? Like calling out an external API... 20:10 – John: Yeah even multiple effects. John asks a question. 20:23 – Guest answers the question. 20:29 – Chuck: I like that you can make constrained assumptions and all of the complicated... 21:10 – Guest: I am using my effects like functions. 21:26 – John’s question. 21:31 – Chuck: Doing everything! You said implement the 2-payload method – that doesn’t make sense? 21:43 – Guest: Not 100% convinced you need it. What people are doing on these actions... 22:43 – Chuck: How much magic you want? 22:50 – Guest. 22:59 – John: I am confused about ERROR HANDLING. What do you advise for people to do? 23:21 – Guest: Basically, when you deal with that effect you deal with the actions, and the actions... If you get an error on it it’s done. I was trying to explain there that...do it on another stream. Try it on another stream and handle it. What happened to me – I did it on the action state and I got an error and then everything will stop. 24:27 – John: That’s not good! 24:32 – Chuck. 24:35 – John: Good tip! 24:40 – Chuck: Angular has gotten better at that. I still find, though... 25:06 – John. 25:16 – John: Hey I appreciate these blog posts that don’t always show the happy path. To show the unhappy path is a good idea. 25:32 – Chuck. 26:00 – Going down your list, Adrian, let’s talk about effects are services. I agree, but not that we have... 26:24 – Guest: I have seen cases where people forget that. They say I want to call a service, how do I do that? They forget... 26:50 – John: You have to provide your services somewhere. The old way was you could go into the... What do you do? 27:28 – Guest: Most of the applications... 28:17 – John. 28:25 – Chuck: I love deleting code! 28:32 – John: You end up in a spaghetti pool, though, if you needed that deleted code. Nooooo!!! 29:00 – Chuck. 29:01 – Guest. 29:10 – Advertisement: Get A Coder Job! 29:49 – John: Let’s talk about reducers – the smallest part of your tip sections. You say, “keep them simple” – how do you keep them simple? 30:07 – Guest: I have received this observation from several people. This is the biggest problem I had. How to keep them simple... 31:08 – John: When someone makes that type of code – where would you want them to put it? 31:23 – Guest: It depends on different types of actions. Maybe I have some sort of matter that I added to the data – an action from my application we can catch it into an effect and... Not all of the actions have to go to the reducer. 32:04 – John: I say, “Hmm...” when I see reducers like this...they are running a synchronized code inside of a reducer. And I see that a lot. 32:24 – Chuck. 32:28 – John: You go call a reaction, and...sometimes they are doing HTP there, but it’s hard to explain. 33:11 – John: What are some of the things that they can do to step-into, when they are using these? 33:16 – Guest: That’s why I only have these things about the reducers. 33:48 – Chuck: I am wondering what is the life cycle look like? What do you call a reducer from an effect from an action or vice versa? 34:09 – Guest answers the question. 34:37 – John: It can be confusing with all of these different terms. Where does it end? Your component you have to say: call this action. Perform this action and then the action says get customers – the NgRx library listens for that and helps connect to the reducer for you. Look into the action and then return that to a stream to whatever... 35:29 – Guest: Yes, it sends it to reducers. Guest goes into more detail. 36:09 – John: You never talk to the reducer directly? 36:17 – Chuck: ...is that something I should have done before – or does it call effects and the effects load the information into the state and the reducer pulls it out for the action? 36:46 – Guest. 36:58 – Chuck. 37:03 – Guest. 37:53 – John: It really depends on what you want to do, Chuck. John will give a hypothetical scenario. 38:58 – Chuck: In your scenario, let’s say... 39:14 – John: Everything is right up until the end there. It’s a little magical, honestly. I just know here is my selector and here is my data! 40:17 – Chuck: Selector is essentially I am interested in THIS state or THIS state change. 40:40 – Guest. 40:50 – Chuck: So when that changes... 40:56 – Guest. 40:59 – John. 41:05 – Chuck: A little piece of the overall store. 41:18 – Guest: My tip there was a bout the selectors... 42:30 – Chuck: So I can hand off my selector to multiple places? 42:36 – Guest: Yep. You don’t need to know anything else. 42:44 – Guest: Combine it as needed. Another benefit here is memorization. It says that each time you select pure functions it wont call the function again. 43:42 – I am seeing a trend in your tips, too. I am seeing easier way to code. You are always saying selector technique. There are a lot of terms in NgRx module. Dispatchers and states and stores...it’s nice to have a way to create the code easier. 44:21 – Guest: It does take a lot of time for someone to grasp. 44:30 – Chuck. 44:35 – John: Don’t use the store all over the place – that’s what Adrian says! 44:54 – Guest: I think it’s more like dumb components. I have a container of all of these dumb components. The container is the one that KNOWS. 46:22 – Chuck: It’s just a button. 46:28 – Guest: You click the button and it triggers. Whenever you want to use that component then you... 46:48 – Chuck: Any types of data that you wouldn’t want to use in your NgRx store? 47:07 – Guest: It depends – I am not holding any logging information there, though. 47:51 – John: I like to ask WHY. Property initialization. You are saying... 48:11 – Guest: It’s less code and it’s reasonable. If I can have less code then I’d love to have it. I think it’s cleaner b/c it’s not that much code. Most people might think blah, blah, blah, but I think it looks okay. 48:46 – John: I can see why it would be less code. 48:57 – Guest. 49:07 – John: I haven’t seen this: looking at your property initializer... Looking at your code here, Adrian... The store object itself is a reference to the NgRx store. That means you have to... To me I don’t want my app to know that NgRx is involved. I started to do this...I was creating an Angular service, which... Have you done this before? 50:33 – Guest: I have seen this function but I haven’t played with it. It makes sense. This takes it a step further. Like you say it’s perfect b/c nobody knows anything about that store, but it’s a new level. I think you have some benefits with that way of doing it, too. 51:23 – John: The one thing that sticks out is company name is your observable, then your... 52:10 – Guest: Yeah that’s good b/c it might be better! They might not even know what NgRx is, and you have a service so just use them. Yeah it’s just an observable. 52:33 – Chuck: You don’t want to see my garage. 52:44 – Guest: Some services are underrated. Like you suggested we could use them for much more. 53:01 – Guest: It was nice writing these tips. 53:19 – Chuck: What are working on now? 53:23 – Guest: Writing a new blog. 53:41 – Chuck: We will keep an eye out for it. Where do you post? 53:55 – Guest: Usually Medium, and Twitter. Search for my name and you will find me, b/c I have the same handler on all the places. 54:15 – Chuck & John: Let’s go to picks! 54:30 – Chuck is talking about future episodes and potential topics. You can vote stuff up on Trello on NgRx so we can go deeper on this topic. 55:40 – Advertisement – Fresh Books! 1:02:00 – Advertisement – Cache Fly! Links: Vue jQuery Angular C# Chuck’s Twitter John Papa’s Twitter Adrian’s Medium Adrian’s Twitter Adrian’s GitHub Adrian’s Blog Post Adrian’s Article: Testing NgRx Effects Sponsors: Angular Boot Camp Fresh Books Get a Coder Job Course Cache Fly Picks: John NgRx Data Conferences - Don’t feel mofo Charles Discord App Adrain Angular In-depth Doc Wallaby Special Guest: Adrian Fâciu.