
ng build --pod
By ng build pod

ng build --podFeb 28, 2020

Special Guest Tom!
John and Chris have a special guest on today. We are interviewing Tom. Tom is a developer at Miles Technologies and has been developing software using the Breckenridge template we've been talking about so much. He helps share a 1st hand perspective of our software and share's his angular story.
Quick Tips:
Engineering Excellencies https://medium.com/swlh/what-is-engineering-excellence-a8aa5a1e8dc5
Payment processors https://www.braintreepayments.com/
Google Maps https://developers.google.com/maps/documentation
https://www.milestechnologies.com/careers
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Component APIs
John and Chris talk about an option for controlling components by creating an API and outputting that. This allows for complex control from a parent component to a child component.
Quick Tips:
mentorship programs and their value
bash aliases for helping with dotnet core CLI
Links:
mentoring club https://www.mentoring-club.com/
bash alias https://linuxize.com/post/how-to-create-bash-aliases/
https://www.milestechnologies.com/careers
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Practical State Management
John and Chris talk state management in Angular applications. The format is a train-me episode where John plays the part of the audience, learning about state management from Chris. The focus is on practical uses of light state management.
Quick Tips:
chrome tabs https://blog.google/products/chrome/manage-tabs-with-google-chrome/
discord for business https://discord.com/
Links:
state management https://en.wikipedia.org/wiki/State_management
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Lazy Loading v2 - Eager to Lazy
John and Chris take another look at lazy loading in Angular, as they discuss lessons learned while converting their codename:Breckenridge Angular template from Eager Loading to Lazy Loading. In this episode they go over analyzing the code generated for lazy loading, tweaking the output to optimize it, and a few advanced routing cases.
Quick Tips:
automating tasks with bash
scully.io for SEO in Angular
Links:
Angular lazy loading https://angular.io/guide/lazy-loading-ngmodules
webpack bundle analyzer https://www.npmjs.com/package/webpack-bundle-analyzer
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Dynamic Forms part 3 of 3
Join John and Chris on an epic journey, as they tackle a topic so big, it just can't be contained in one episode. It all starts with a simple idea... "why do we have to keep building out forms manually? I wish we could automate this part of web development." In this final episode in a three part series, we discuss the implementation of dynamic forms using dynamic field components and configuration objects for the Angular front end.
Quick Tips:
vim adventures - https://vim-adventures.com/
optional chaining - https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#optional-chaining
Links:
Angular's Dynamic Forms https://angular.io/guide/dynamic-form
Dynamic Component Loader https://angular.io/guide/dynamic-component-loader
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Dynamic Forms part 2 of 3
Join John and Chris on an epic journey, as they tackle a topic so big, it just can't be contained in one episode. It all starts with a simple idea... "why do we have to keep building out forms manually? I wish we could automate this part of web development." In this second episode in a three part series, we discuss the use of a json based Model that allows our Database to build out interfaces and form control prototypes for the Angular front end.
Quick Tips:
Air Purifier - https://www.amazon.com/gp/product/B073WJL99W/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
Prioritize your work life culture and Advocate for your well being
Links:
Customer Form Control https://gist.github.com/J-Graham/b694dbaaef4144c4cefa39683cdb1601
Customer Interface https://gist.github.com/J-Graham/afe64f5a8edad22e5998da8842784104
BackEndModel.json https://gist.github.com/J-Graham/2dbed1e14524a1b95b4a2faf1cc44901
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Dynamic Forms part 1 of 3
Join John and Chris on an epic journey, as they tackle a topic so big, it just can't be contained in one episode. It all starts with a simple idea... "why do we have to keep building out forms manually? I wish we could automate this part of web development." In this first episode in a three part series, we discuss the problem and the beginnings of an exciting solution that we have named as Dynamic Forms.
Quick Tips:
Go on a vacation
Send Grid - https://sendgrid.com/
Links:
Angular reactive forms https://angular.io/guide/reactive-forms
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

RxJS v2 - a Real Scenario
Let's take the next step with RxJS! This time, John and Chris tackle a real scenario as they dive into the next level of using RxJS in Angular. Using an Order Summary page as an example, this episode covers ways to consolidate API calls using RxJS, cleaning up the component in the process. Check out the links section for follow-along code samples of the scenario discussed in this episode.
Quick Tips:
Engineering Journal
Typedoc - https://typedoc.org/
Links:
pre-optimization https://github.com/J-Graham/ng-build-pod-rx-jssamples
post-optimization https://github.com/J-Graham/ng-build-pod-rx-jssamples/tree/post-optimization
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Cypress
John teaches Chris all about Cypress for end to end testing in Angular. In this episode we try something new where John explains cypress.io and e2e testing in Angular to Chris, who has never worked with it before. The result is a quick tutorial of cypress, what it does, how it works, and some of the ways we have implemented it in our CI to provide testing for our Angular framework.
Quick Tips:
Shape-up - https://basecamp.com/shapeup
Work doesn't have to be crazy - https://www.amazon.com/Doesnt-Have-Be-Crazy-Work-ebook/dp/B079WV79TK/ref=sr_1_2?crid=AG46YM8KYJWM&dchild=1&keywords=work+doesn%27t+have+to+be+crazy&qid=1592590276&sprefix=work+doesn%27t%2Caps%2C144&sr=8-2
Scripts in package.json - https://docs.npmjs.com/misc/scripts
Links:
https://github.com/cypress-io/cypress-example-recipes/tree/master/examples
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Directives
Directives are everywhere and are super powerful, but also a bit more complicated to create than components. In this episode, Chris and John cover many of the inner workings of directives inlcuding how to create them and some more advanced ideas of what you can do with them.
Quick Tips:
Bent - https://www.npmjs.com/package/bent
Angular Essentials - https://marketplace.visualstudio.com/items?itemName=johnpapa.angular-essentials
Links:
https://angular.io/guide/attribute-directives
https://sweetalert2.github.io/
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Clean Components and Services
In Angular applications, clean components help to keep your code readable and straightforward. In this episode, Chris and John cover how to critically review your components to know when they are too complicated, and some ways to go about refactoring them, including using Services to handle some of the more complicated business logic.
Quick Tips:
Ultralearning
Pomodoro technique
Links:
https://www.amazon.com/Ultralearning-Master-Outsmart-Competition-Accelerate/dp/006285268X
https://en.wikipedia.org/wiki/Pomodoro_Technique
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Component Orchestration
This week John and Chris use an example of building a forum to talk about how to conditionally create the components you need without the use of ngIf statements. The discussion includes the steps to get there, why you would want to do it this way, and gotchas along the way.
Quick Tips:
Regex101 FTW
cmder console
Links:
https://angular.io/guide/dynamic-component-loader
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Testing
This week it's all about Testing. Specifically Unit Testing in Angular. John and Chris cover everything from why you want to test your code and how to get started with testing, including some gotchas along the way.
Quick Tips:
Using Dynalist to organize your thoughts and work plans
Splitting your Angular libraries for better performance
Links:
https://angular.io/guide/testing
https://freakonomics.com/podcast/the-cobra-effect-a-new-freakonomics-radio-podcast/
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Authentication
This week John and Chris talk about Authentication in Angular. They discuss everything from how to guard your routes in your Angular app to methods for modifying the http requests to include auth tokens.
Quick Tips:
Image and video capture in your merge requests
Windows PowerToys and screen templates
Links:
https://github.com/microsoft/PowerToys
https://angular.io/guide/router#milestone-5-route-guards
https://angular.io/api/common/http/HttpInterceptor
https://maxchadwick.xyz/blog/http-request-header-size-limits
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Angular Libraries
Angular Libraries are where you turn your modules into npm packages that can be used in other Angular applications. John and Chris dive into this subject going over concepts and terms. Then talk about how to build out and structure your libraries, along with plenty of tips and gotchas. They even go into how to handle distributing your packages using your own repository manager and semantic versioning.
Quick Tips:
npx and how to use a package without installing it
using rxjs take(1) to fake http calls using a subject
Links:
https://angular.io/guide/libraries
https://github.com/milestechnologies/ngx-package-starter
https://www.npmjs.com/package/npx
https://www.learnrxjs.io/learn-rxjs/operators/filtering/take
https://www.npmjs.com/package/ng-packagr
https://docs.npmjs.com/misc/semver
https://www.sonatype.com/nexus-repository-oss
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

RxJS
Chris and John tackle RxJS. Starting with the basics including terminology and concepts and going in depth on use cases, operators, pipes, and some of the tips and gotchas.
Quick Tips:
Fork a GUI for git
Who's afraid of Regex :)
Links:
http://phillydotnet.org/2020-1-schedule.html go to Saturday's sessions for our talk
https://twitter.com/JohnGrahamDev
https://twitter.com/PilgrimSecret
https://www.milestechnologies.com/careers/
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Change Detection
Chris and John explore Angular's Change Detection. Starting with the basics or terminology and concepts and going in depth on how it works, performance concerns, and tips.
Quick Tips:
Windows Key + V
Object.assign()
Links:
http://phillydotnet.org/2020-1-schedule.html go to Saturday's sessions for our talk
https://twitter.com/JohnGrahamDev
https://twitter.com/PilgrimSecret
https://www.milestechnologies.com/careers/
Music: Phortitude by Shane Ivers - https://www.silvermansound.com

Lazy Loading
Chris and John tackle Lazy Loading in Angular. Starting with the basics including terminology and concepts and going in depth on how it works, performance concerns, and tips.
Quick Tips:
Prettier config files
Impostor Syndrome
Links:
http://phillydotnet.org/2020-1-schedule.html go to Saturday's sessions for our talk
https://twitter.com/JohnGrahamDev
https://twitter.com/PilgrimSecret
https://www.milestechnologies.com/careers/
Music: Phortitude by Shane Ivers - https://www.silvermansound.com