Podcasts about vue router

  • 12PODCASTS
  • 22EPISODES
  • 50mAVG DURATION
  • ?INFREQUENT EPISODES
  • Jun 7, 2022LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about vue router

Latest podcast episodes about vue router

Modernize or Die ® Podcast - CFML News Edition
Modernize or Die® - CFML News Podcast for June 7th, 2022 - Episode 151

Modernize or Die ® Podcast - CFML News Edition

Play Episode Listen Later Jun 7, 2022 73:38


2022-06-07 Weekly News - Episode 151Watch the video version on YouTube at https://www.youtube.com/watch?v=CKnPCL8870Q&list=PLNE-ZbNnndB98oRT8THamdCUiyDQL1uEj&index=151 Hosts: Gavin Pickin - Senior Developer at Ortus Solutions Dan Card - Senior Developer at Ortus Solutions Thanks to our Sponsor - Ortus SolutionsThe makers of ColdBox, CommandBox, ForgeBox, TestBox and all your favorite box-es out there. A few ways  to say thanks back to Ortus Solutions: BUY SOME ITB TICKETS - COME TO THE CONFERENCE Like and subscribe to our videos on YouTube.  Help ORTUS reach for the Stars - Star and Fork our Repos Star all of your Github Box Dependencies from CommandBox with https://www.forgebox.io/view/commandbox-github  Subscribe to our Podcast on your Podcast Apps and leave us a review Sign up for a free or paid account on CFCasts, which is releasing new content every week BOXLife store: https://www.ortussolutions.com/about-us/shop Buy Ortus's Book - 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips)  Patreon SupportGoal 1 - We have 37 patreons providing 100% of the funding for our Modernize or Die Podcasts via our Patreon site: https://www.patreon.com/ortussolutions. Goal 2 - We are 53% of the way to fully fund the hosting of ForgeBox.io PATREON SPONSORED JOB POSTING!Hagerty - MotorSportReg2 Job Opportunities for Senior Software Engineer, Motorsport - more in the job section.Ready to get in the driver's seat? Join us!https://bit.ly/3985J3U News and AnnouncementsLive Stream Series - Koding with the Kiwi + FriendsStarting this Friday, June 10th, at 1pm PDTGoal is for Weekly Streams - when possibleGavin will be hosting a live stream, for Patreon members only. This stream try to include special guests from the community, to get their viewpoints / advice on how Gavin should do something. We'll be pair programming / talking with Adam Cameron about TDD, Sam Knowlton on Quick/QB, and Wil De Bruin on API documentation and Validation, and others from the Ortus Team and Community too. This week's guest is a surprise, you'll have to tune in to find out.Patreon's check your email, there will be an email sent soon with the registration link for the zoom call.Blog Post with more details coming tomorrow.Not a patreon? Sign up today or wait for us to release the recording on CFCasts after the session.INTO THE BOX - UpdatesThis week we're going to be announcing some attendee perks, like CFCasts, as well as some more sponsors. Last week was full of announcements, and special code and the last workshop selected.Announcing - Into the Box 2022 Podcast SeriesThis podcast is a special podcast for attendees or undecided attendees, to get a view of what the conference has to offer, we'll be interviewing Ortus members organizing the conference, as well as workshop trainers, session speakers and sponsors as well. You'll get all of this information, in short sharp episodes, so you can decide if you want to Into the Box and WHEN you decide you are going, which workshop and sessions will you attend.https://www.intothebox.org/blog/announcing-into-the-box-2022-podcast-series Free Month of CFCasts for all ITB Attendees in Addition to ITB 2022 VideosEvery year, when you are an attendee of Into the Box, you get all of the recordings from the Into the Box Conference you attended made available for future viewing, or reviewing. We have always done this so you don't miss out on all of the amazing content in both tracks at the conference. In addition to that, this year, after Into the Box, we'll also be sending all of the attendees a coupon for 1 month free access to all of the content on CFCasts.http://www.intothebox.org/blog/free-month-of-cfcasts-for-all-itb-attendees-in-addition-to-itb-2022-videos Couchbase - Platinum Sponsor for Into the Box 2022We are excited to announce Couchbase as a Platinum Sponsor at Into the Box 2022. Ortus Solutions has built the Couchbase Extension for Lucee and has been using Couchbase for many years now, to provide lightning fast caching, vital in a clustered environment. Couchbase has continued to grow and expand features and benefits, and we are so happy they are sponsoring Into the Box 2022.http://www.intothebox.org/blog/couchbase-platinum-sponsor-for-into-the-box-2022 Top Secret - Big Announcement coming next week - fingers crossedICYMI - ColdBox BE ready for next release - testers neededHas major refactoring and improvements on wirebox - we have a need for speed!https://ortussolutions.atlassian.net/browse/COLDBOX-1113?jql=project%20%3D%20%22COLDBOX%22%20AND%20fixVersion%20%3D%20%22Current%22https://ortussolutions.atlassian.net/browse/COLDBOX-1107?jql=project%20%3D%20%22WIREBOX%22%20AND%20fixVersion%20%3D%20%22Current%22ICYMI - CBFS is going to be cut any day now - testers neededWe're looking for others to contribute other providers to make it even more powerful.https://www.forgebox.io/view/cbfsNew Releases and UpdatesICYMI - Hyper v3.5.0 is out with:- New `getStatusText()` and `getStatus()` methods- `getMemento()` methods for both `HyperRequest` and `HyperResponse`- And a better `throwOnError` experience showing much more information than `cfhttp` gives you out of the box.https://www.forgebox.io/view/hyper ICYMI - Minor Update to the Lucee Mongo DB Extensionfixes an issue where cache entries with a “last access” timeout would not properly be removed from the cache in a timely manner.fixes an issue where the hit count in the table was incremented twice on each “hit”minor code cleanup (typos in function names)https://dev.lucee.org/t/mongodb-extension-minor-update-3-12-8-132/10254 WEBINARS / MEETUPS AND WORKSHOPSTHIS WEEK - Online CF Meetup - "When Should I Use 3rd Party Libraries vs Roll My Own?", with Gavin PickinThere is always a trade-off between using a 3rd party library and rolling your version in software development. I often hear many of these points in discussions, but I wonder how many people know and consider them, so I wanted to share my pros and cons.This presentation will help convince you that libraries are not EVIL like so many haters believe. Choosing the right libraries will make you more productive and efficient, not lazy. We'll look at how to identify solid use-cases for using a 3rd party library in your application. It gives you a checklist of questions to help you identify the red flags of unsafe, unreliable, poorly supported, or ill-suited libraries.We'll look at some CF Landscape exampleshttps://www.meetup.com/coldfusionmeetup/events/286262739/ Ortus Webinar - June - Getting started with the Legacy Migration with Dan CardJune 24th 2022: Time 11:00 AM Central Time ( US and Canada )We will look at the process of converting legacy .cfm based sites into a more modern coding design which has less overall code, is easier to maintain and manage, mistakes and errors can more readily and speedily identified and fixed, and is easier to read.Registration Link: https://us02web.zoom.us/meeting/register/tZAvceqsqj4vGd2jojyCgn7cUnytPpBeWvV5 View all Webinars: https://www.ortussolutions.com/events/webinars June 2022 Seattle ColdFusion User Group MeetingWe are restarting our Seattle ColdFusion User Group meetings and are looking forward to meeting online with all of you.This month's meeting includes a presentation by Leon O'Daniel on sending SMS messages using ColdFusion and the Twilio API.https://www.meetup.com/Seattle-ColdFusion-User-Group/events/285974950/ Adobe WorkshopsJoin the Adobe ColdFusion Workshop to learn how you and your agency can leverage ColdFusion to create amazing web content. This one-day training will cover all facets of Adobe ColdFusion that developers need to build applications that can run across multiple cloud providers or on-premiseWEDNESDAY, JUNE 15, 20229:00 AM EDTAdobe ColdFusion WorkshopBrian Sappeyhttps://1-day-coldfusion-workshop.meetus.adobeevents.com/ WEDNESDAY, JUNE 22, 20229:00 AM CETAdobe ColdFusion WorkshopDamien Bruyndonckx (Brew-en-dohnx) https://adobe-cf-workshop.meetus.adobeevents.com/ FREE :)Full list - https://meetus.adobeevents.com/coldfusion/ Adobe and Carahsoft workshopsICYMI - Wednesday June 01, 2022Adobe ColdFusion Advanced Workshop CPE credit availableHosted By: Adobe & Carahsofthttps://www.carahsoft.com/learn/event/37899-Adobe-ColdFusion-Advanced-Workshop Tuesday, June 7, 2022Adobe ColdFusion WorkshopCPE credit availableHosted By: Adobe & Carahsofthttps://www.carahsoft.com/learn/event/37401-adobe-coldfusion-workshopCFCasts Content Updateshttps://www.cfcasts.comJust Released LogBox 101 https://cfcasts.com/series/logbox-101Installation and Getting Started - https://cfcasts.com/series/logbox-101/videos/installation-and-getting-started Publish your First ForgeBox Package - https://cfcasts.com/series/publish-your-first-forgebox-package ForgeBox Admin - Dashboard - https://cfcasts.com/series/publish-your-first-forgebox-package/videos/forgebox-admin---dashboard  2022 ForgeBox Module of the Week Series - 3 new Videoshttps://cfcasts.com/series/2022-forgebox-modules-of-the-week 2022 VS Code Hint tip and Trick of the Week Series - 3 new Videoshttps://cfcasts.com/series/2022-vs-code-hint-tip-and-trick-of-the-week  Coming Soon Last couple of videos for Gavin Pickin - Publish Your First ForgeBox Package LogBox 101 from Eric Peterson Box-ifying a 3rd Party Library from Gavin More ForgeBox and VS Code Podcast snippet videos Conferences and TrainingTHIS WEEK - US VueJS ConfFORT LAUDERDALE, FL • JUNE 8-10, 2022Beach. Code. Vue.Workshop day: June 8Main Conference: June 9-10https://us.vuejs.org/Speakers and Schedule Announced https://us.vuejs.org/schedule/ THIS WEEK - Apple WWDCJune 6 to 10https://developer.apple.com/wwdc22/Quasar ConfPlease let us know about you and what you'd like to speak about in all things Quasar or Vue!!!Conference Date: Saturday, July 9th, 2022 - 3 p.m. GMTDeadline for Proposals: June 9th, 2022Call for Proposals - https://docs.google.com/forms/d/e/1FAIpQLSecQfTFUM1BINAvpPl-Khbk7UYpLk2srIR0pLgMcVjpJwWMCA/viewform THAT ConferenceHowdy. We're a full-stack, tech-obsessed community of fun, code-loving humans who share and learn together.We geek-out in Texas and Wisconsin once a year but we host digital events all the time.WISCONSIN DELLS, WI / JULY 25TH - 28TH, 2022A four-day summer camp for developers passionate about learning all things mobile, web, cloud, and technology.https://that.us/events/wi/2022/ Our very own Daniel Garcia is speaking there https://that.us/activities/sb6dRP8ZNIBIKngxswIt Adobe Developer Week 2022July 18-22, 2022Online - Virtual - FreeThe Adobe ColdFusion Developer Week is back - bigger and better than ever! This year, our experts are gearing up to host a series of webinars on all things ColdFusion. This is your chance to learn with them, get your questions answered, and build cloud-native applications with ease.Note: Speakers listed are 2021 speakers currently - check back for updates - I heard speakers were being contacted, and info coming very soon!!! Wink wink nudge nudgehttps://adobe-coldfusion-devweek-2022.attendease.com/registration/form VueJS Forge After many requests - New Dates - July 13th-14thDue to many of you taking advantage of early summer vacations, we have decided to postpone the event to a date that will make sure as many of you as possible won't miss out on the opportunity to attend Vue.js Forge!Organized by Vue School_The largest hands-on Vue.js EventTeam up with 1000s of fellow Vue.js devs from around the globe to build a real-world application in just 2 days in this FREE hackathon-style event.Make connections. Build together. Learn together.Sign up as an Individual or signup as a companyCompany Deal - $2000 for a team of 5, includes VueSchool annual membership and guaranteed seat at the workshops at VueJS Forge as well… and you can pick your teamSneak Peek into the Project: If you've ever wanted to build your own SaaS app, then “the project” is definitely right up your alley! Work with Vue.js, VueUse, Vue Router, and Pinia on the front-end along with a dynamic back-end to create the main application. Also create a marketing site that's easily maintained by a non-technical marketing team, then deploy everything live to the world.https://vuejsforge.com/Into The Box 2022September 6, 7 and 8, 2022One day workshops before the two day conference!Super Early bird pricing ended May 31st, 2022 - Get the early bird price nowConference Website:https://intothebox.orgITB Blog has new updates almost every day!CF Summit - OfficialMirageOct 3rd & 4th - CFSummit ConferenceOct 5th - Adobe Certified Professional: Adobe ColdFusion Certification Classes & Testshttps://cfsummit.adobeevents.com/ Registrations are now open.For just $99!Grab your early-bird tickets before June 30.Call for Speakers is now OpenFrom Slack re Adobe Certified ProfessionalThe Adobe Certified Professional: Adobe ColdFusion cert is a totally different, MUCH more difficult and comprehensive certification than the CF Specialist previously offered. Mark Takata, Nolan and Dave F + the CF engineering team, Elishia and Kishore all spent a week together building the new one and it is HARD. I highly recommend it as a test of your skills, I guarantee everyone will learn something new.Yes, but there's also over 100 hours of video to go over before the 1 day lecture + cert. So you watch videos, sit in class, then take the exam there. It is no joke, definitely challenging, but super satisfying to pass.Plus you get access to those videos for a year, which is nice for going back and reviewing things down the line.Into the Box Latam 2022Dec 7thMore information is coming very soon.CFCampNo CFCAMP 2022, we're trying again for summer 2023TLDR is that it's just too hard and there's too much uncertainty right now.More conferencesNeed more conferences, this site has a huge list of conferences for almost any language/community.https://confs.tech/Blogs, Tweets, and Videos of the Week 6/7/22 - Ben Nadel - Disabling Async Attribute On CFMail For At-Least-Once Delivery In Lucee CFMLWhen I'm sending emails out in a ColdFusion application, not all emails are created equal. Much of the time, if an email is lost here-and-there, it's not the end of the world. For example, a "Forgot My Password" email can always be sent a second time. In critical ColdFusion workflows, however, when losing an email is unacceptable, I track the processing of pending emails in the database; and, I make sure to set the async (Lucee CFML) / spoolEnable (Adobe ColdFusion) attribute on the CFMail tag to false.https://www.bennadel.com/blog/4278-disabling-async-attribute-on-cfmail-for-at-least-once-delivery-in-lucee-cfml.htm 6/7/22 - Peter Amiri - CFWheels - Two New Repositories PublishedWe have published two new repositories named cfwheels/cfwheels-www and cfwheels/cfwheels-api which handle the CFWheels.org landing page site and the api.cfwheels.org API documentation site respectively.https://cfwheels.org/blog/two-new-repositories-published/ 6/6/22 - Peter Amiri - CFWheels - CFWheels DotEnvSettings Plugin publishedA new plugin was published to provide support for .env settings files in a production environment. This plugin is based on Eric Peterson's CommandBox module and allows the use of .env or similarly named files to store your application secrets so they can be kept out of source control.https://cfwheels.org/blog/cfwheels-dotenvsettings-plugin-published/ 6/6/22 - Wil De Bruin - ImageNew bug in LuceeSeveral months ago Eric Peterson published the totp module, a cfml implementation of Time-based One-time Password. I  decided to give the totp module a try. I immediately discovered a bug in the module: the bar codes where not generated correctly. I contacted the author on Slack, and we soon discovered, this was only a problem on Lucee, and apparently it was caused by the ImageNew() function. As I am developing API's most of the time, I never used this function before, and I guess it is not used by many other people.https://shiftinsert.nl/imagenew-bug-in-lucee/ 6/5/22 - Ben Nadel - Adding New Regular Expression Parsing To My JRegEx Project For ColdFusionAs part of the recent Regular Expression Day celebrations, I was working on some fun and exciting ways to parse strings and lists using RegEx patterns in ColdFusion. As a quick follow-up to those joyous outbursts, I've gone and added those new methods to my JRegEx ColdFusion component. In fact, I've added a new JRegExList.cfc component to this project for list-specific parsing - I didn't want to mix the two genres together.https://www.bennadel.com/blog/4277-adding-new-regular-expression-parsing-to-my-jregex-project-for-coldfusion.htm 6/3/22 - Mark Takata - Adobe - CLI Installation of ColdFusion for lower memory useOne of the key feature updates of CF2021 was the addition of modularity to the server. No longer were you limited to just installing the “whole kit and caboodle”, now you could pick and choose your connectors and packages, allowing you a leaner installation. You could, of course, use the GUI installer to get everything in place, then remove the things you didn't need. But the other way to get things in place is to use the Command Line Interface(CLI) to install ColdFusion, and then use the new Package Manager Command Line Interface (PMCLI) to install the packages you need, scan your code to see what packages you need, download packages locally, and much more!https://coldfusion.adobe.com/2022/06/cli-installation-of-coldfusion-for-lower-memory-use/ 6/3/22 - Ortus Solutions - Ortus Content Digest for week of June 3rdWhat has Ortus been publishing this week? We have the Podcast, some CFCasts and YouTube Videos. We have a lot more planned for next week as wellhttps://www.ortussolutions.com/blog/ortus-content-digest-for-week-of-june-3rd?utm_source=contentstudio.io&utm_medium=podcast 6/2/22 - Ortus Solutions - June 2022 Webinar - Getting started with the Legacy Migration with Dan CardWe are happy to announce the Ortus Webinar for June 2022 - Getting started with the Legacy Migration with Dan Cardhttps://www.ortussolutions.com/blog/june-2022-webinar-getting-started-with-the-legacy-migration-with-dan-card?utm_source=contentstudio.io&utm_medium=podcast    6/2/22 - Ben Nadel - Parsing Lists Using A RegEx Delimiter In Lucee CFML 5.3.8.201In honor of yesterday's Regular Expression Day 2022 celebration, I wanted to play around with parsing lists in ColdFusion using a RegEx (Regular Expression) delimiter. Lists are the unsung heroes of the CFML language; and, are usually delimited by a single character (or set of single characters). But, the beauty of a list is that it's just a String; and, you can make a list out of anything using any delimiter. And, sometimes, I'd like that delimiter to be something more flexible, more dynamic. To start exploring this concept, I'm going to create jreListFirst() and jreListRest() functions.https://www.bennadel.com/blog/4275-parsing-lists-using-a-regex-delimiter-in-lucee-cfml-5-3-8-201.htm 6/1/22 - Ben Nadel - The 15th Annual Regular Expression Day - June 1st 2022Happy Regular Expression Day! This is your annual reminder to learn you some Regular Expressions for great good! Pattern matching is a skill that comes with a massive return on investment (ROI). It is no exaggeration that I use ColdFusion and JavaScript Regular Expression (RegEx) functions every single day. Literally! Once you understand how patterns work, you see them everywhere! They are a game changer!https://www.bennadel.com/blog/4274-the-15th-annual-regular-expression-day-june-1st-2022.htm 6/1/22 - Gavin Pickin - Ortus - How to Make Windows Folders Case SensitiveIn the last blog post in this series, we discussed Case Sensitivity on Windows, what is it, why does it matter, and how it could mess up your developer day in ways you never thought of. In this blog post, we're going to show you how to enable case sensitivity in windows, for a given folder, all folders underneath it, and explain how that case sensitivity is inherited, and when it isn't.https://www.ortussolutions.com/blog/how-to-make-windows-folders-case-sensitive?utm_source=contentstudio.io&utm_medium=podcast 6/1/22 - Into the Box - Couchbase - Platinum Sponsor for Into the Box 2022We are excited to announce Couchbase as a Platinum Sponsor at Into the Box 2022.Ortus Solutions has built the Couchbase Extension for Lucee and has been using Couchbase for many years now, to provide lightning fast caching, vital in a clustered environment. Couchbase has continued to grow and expand features and benefits, and we are so happy they are sponsoring Into the Box 2022.https://www.intothebox.org/blog/couchbase-platinum-sponsor-for-into-the-box-2022/?utm_medium=referral&utm_source=podcast Tweet - Charlie Arehart - Good to see - Adobe - Sometimes it's the little things Good to see: Adobe today updated their downloads page with the latest Java versions 11.0.15.1 (vs 11.0.15 added last month) and 8u333 (over 8u331 last month), and also fixed sort order and how filenames are shown. Sometimes it's the little things. #coldfusion #luceehttps://twitter.com/carehart/status/1532021965212499979https://twitter.com/carehart Blog - Adam Tuttle - The Flywheel of TestingOn my continuing quest to get better at testing, I have spent quite a lot of time in the last couple of weeks reading about testing, watching tutorial videos, and practicing testing in my work. It has been a long, slow, difficult, slog. I'm not sure what made me think of it, but I was reminded of a flywheel.https://adamtuttle.codes/blog/2021/the-flywheel-of-testing/ CFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 94 ColdFusion positions from 53 companies across 47 locations in 5 Countries.2 new jobs listedFull-Time - ColdFusion Dev at Kovilpatti, Tamil Nadu - India Jun 03https://www.getcfmljobs.com/jobs/index.cfm/india/ColdFusion-Dev-at-Kovilpatti-Tamil-Nadu/11481 Full-Time - Senior Coldfusion Developer WORK |LATAM| at Colon, PA - United States Jun 01https://www.getcfmljobs.com/jobs/index.cfm/united-states/Senior-Coldfusion-Developer-WORK-LATAM-at-Colon-PA/11480 PATREON SPONSORED JOB POSTING!Hagerty - MotorSportRegSenior Software Engineer, MotorsportWe are seeking a Senior Software Engineer to work primarily with Node/Vue.js, ColdFusion, and AWS to improve our platform and build greenfield experiences.We are a 25-person team supporting 1,600 organizations with our SaaS CRM, commerce and event management platform. With 8,000 events managed in our marketplace annually by our customers, our goal is to be the number one software platform for automotive and motorsport events.Ready to get in the driver's seat? Join us!https://bit.ly/3985J3U Other Job Links Ortus Solutionshttps://www.ortussolutions.com/about-us/careers  Clear Capital - Carol from Working Code Podhttps://jobs.jobvite.com/careers/clearcapital/search?j=o7OCjfwA&j=oWVlhfwd&j=oj7Vhfwm&j=oKzjifwE&j=oh43hfwp&j=ol9Jjfwg&j=oEhyjfww&j=oJgCjfwE&j=obZxgfwH&j=o19JjfwW&__jvst=employee&__jvsd=sporQiwR&__jvsc=Url&bid=nTn6s0wj  There is a jobs channel in the cfml slack team, and in the box team slack now too ForgeBox Module of the WeekCFWheels DotEnvSettings PluginThis module reads secrets contained in a .env file (or other file you specify) and loads the values into the CFWheels settings. Based on Eric Peterson's CommandBox Module.https://www.forgebox.io/view/cfwheels-dotenvsettings VS Code Hint Tips and Tricks of the WeekSQL Server Client(mssql)The Database Client makes your life easy. It supports databases MySQL/MariaDB, Microsoft SQL Server, PostgreSQL, SQLite, MongoDB, Redis, and ElasticSearch.https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-myssql-client2 Thank you to all of our Patreon SupportersThese individuals are personally supporting our open source initiatives to ensure the great toolings like CommandBox, ForgeBox, ColdBox,  ContentBox, TestBox and all the other boxes keep getting the continuous development they need, and funds the cloud infrastructure at our community relies on like ForgeBox for our Package Management with CommandBox. You can support us on Patreon here https://www.patreon.com/ortussolutionsDon't forget, we have Annual Memberships, pay for the year and save 10% - great for businesses. Bronze Packages and up, now get a ForgeBox Pro and CFCasts subscriptions as a perk for their Patreon Subscription. All Patreon supporters have a Profile badge on the Community Website All Patreon supporters have their own Private Forum access on the Community Website https://community.ortussolutions.com/ PatreonsNEW PATREON - JORDAN CLARK John Wilson - Synaptrix Brian Ghidinelli - Hagerty MotorsportReg   Eric Hoffman Gary Knight Mario Rodrigues Giancarlo Gomez David Belanger Dan Card Jonathan Perret Jeffry McGee - Sunstar Media Dean Maunder Wil De Bruin Joseph Lamoree Don Bellamy Jan Jannek Laksma Tirtohadi Carl Von Stetten Jeremy Adams Didier Lesnicki Matthew Clemente Daniel Garcia Scott Steinbeck - Agri Tracking Systems Ben Nadel  Brett DeLine Kai Koenig Charlie Arehart Jonas Eriksson Jason Daiger Shawn Oden Matthew Darby Ross Phillips Edgardo Cabezas Patrick Flynn Stephany Monge John Whish Kevin Wright Peter Amiri You can see an up to date list of all sponsors on Ortus Solutions' Websitehttps://ortussolutions.com/about-us/sponsors ★ Support this podcast on Patreon ★

Modernize or Die ® Podcast - CFML News Edition
Modernize or Die® - CFML News Podcast for May 31st, 2022 - Episode 150

Modernize or Die ® Podcast - CFML News Edition

Play Episode Listen Later May 31, 2022 72:13


2022-05-31 Weekly News - Episode 150Watch the video version on YouTube at https://youtu.be/7LhEqGkkwrU Hosts: Gavin Pickin - Senior Developer at Ortus Solutions Eric Peterson - Senior Developer at Ortus Solutions Thanks to our Sponsor - Ortus SolutionsThe makers of ColdBox, CommandBox, ForgeBox, TestBox and all your favorite box-en out there. A few ways  to say thanks back to Ortus Solutions: BUY SOME ITB TICKETS - COME TO THE CONFERENCE Like and subscribe to our videos on YouTube.  Help ORTUS reach for the Stars - Star and Fork our Repos Star all of your Github Box Dependencies from CommandBox with https://www.forgebox.io/view/commandbox-github  Subscribe to our Podcast on your Podcast Apps and leave us a review Sign up for a free or paid account on CFCasts, which is releasing new content every week BOXLife store: https://www.ortussolutions.com/about-us/shop Buy Ortus's Book - 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips)  Patreon SupportGoal 1 - We have 38 patreons providing 100% of the funding for our Modernize or Die Podcasts via our Patreon site: https://www.patreon.com/ortussolutions. Goal 2 - We are 50% of the way to fully fund the hosting of ForgeBox.io PATREON SPONSORED JOB POSTING!Hagerty - MotorSportReg2 Job Opportunities for Senior Software Engineer, Motorsport - more in the job section.Watch the video with Brian Ghidinelli - Hagerty MotorsportReg Ready to get in the driver's seat? Join us!https://bit.ly/3985J3U News and AnnouncementsColdBox BE ready for next release - testers neededHas major refactoring and improvements on wirebox - we have a need for speed!https://ortussolutions.atlassian.net/browse/COLDBOX-1113?jql=project%20%3D%20%22COLDBOX%22%20AND%20fixVersion%20%3D%20%22Current%22https://ortussolutions.atlassian.net/browse/COLDBOX-1107?jql=project%20%3D%20%22WIREBOX%22%20AND%20fixVersion%20%3D%20%22Current%22CBFS is going to be cut any day now - testers neededWe're looking for others to contribute other providers to make it even more powerful.https://www.forgebox.io/view/cbfsINTO THE BOX - UpdatesThis week we're going to be announcing some attendee perks, like CFCasts, as well as some more sponsors. Last week was full of announcements, and special code and the last workshop selected.Into the Box 2022 - Venue and Hotel Information with Discount CodeWe are excited to be hosting Into the Box 2022 back in Houston Texas, but this time, at a new venue, and new hotel, Houston CityPlace Marriott at Springwoods Village. The venue is top of the line, and the conference and workshop areas are professional and functional making them perfect for our Conference. We have secured you a group discount code, for Into the Box 2022 Attendeeshttp://www.intothebox.org/blog/into-the-box-2022-venue-and-hotel-information-with-discount-code Into the Box 2022 - Flight Discounts with United AirlinesWe are pleased to partner with United Airlines for air travel to our upcoming event. To make flight reservations online please click on the discount code...http://www.intothebox.org/blog/into-the-box-2022-flight-discounts-with-united-airlines Into the Box 2022 - 5th and Final Workshop SelectedWe previously announced the first four workshops, but our fifth and final workshop was down to a tough decision between 3 great workshop options. We put the poll out on twitter, and we selected the final workshop.http://www.intothebox.org/blog/into-the-box-2022-5th-and-final-workshop-selected Adobe - Platinum Sponsor for Into the Box 2022This year, we are fortunate enough to have Adobe by our side again as our partner at Into the Box 2022. With the support of Adobe, we have been able to work and expand within the ColdFusion community, not only in the United States, but also with our initiatives in Latin America. Their help has been invaluable in ensuring that our conferences are a huge successhttp://www.intothebox.org/blog/adobe-platinum-sponsor-for-into-the-box-2022 Free Month of CFCasts for all ITB Attendees in Addition to ITB 2022 VideosEvery year, when you are an attendee of Into the Box, you get all of the recordings from the Into the Box Conference you attended made available for future viewing, or reviewing. We have always done this so you don't miss out on all of the amazing content in both tracks at the conference. In addition to that, this year, after Into the Box, we'll also be sending all of the attendees a coupon for 1 month free access to all of the content on CFCasts.https://www.intothebox.org/blog/free-month-of-cfcasts-for-all-itb-attendees-in-addition-to-itb-2022-videos/?utm_medium=referral&utm_source=podcast New Releases and UpdatesHyper v3.5.0 is out with:- New `getStatusText()` and `getStatus()` methods- `getMemento()` methods for both `HyperRequest` and `HyperResponse`- And a better `throwOnError` experience showing much more information than `cfhttp` gives you out of the box.Minor Update to the Lucee Mongo DB Extensionfixes an issue where cache entries with a “last access” timeout would not properly be removed from the cache in a timely manner.fixes an issue where the hit count in the table was incremented twice on each “hit”minor code cleanup (typos in function names)https://dev.lucee.org/t/mongodb-extension-minor-update-3-12-8-132/10254 ICYMI - CommandBox v5.5.2 Released!We are pleased to release CommandBox 5.5.2.  This is patch release following our recent 5.5.1 release.  It contains mostly fixes for regressions in the 5.5. release.  If you're upgrading from CommandBox 5.4, please refer to the 5.5.1 release notes first.Good number of bug fixes, improvements and tasks.https://www.ortussolutions.com/blog/commandbox-552-released/?utm_medium=referral&utm_source=podcast ICYMI - Lucee 5.3.9.141 ReleasedFollowing up on our 5.3.9.133 stable release, the Lucee team is proud to announce our 5.3.9.141 stable releasehttps://dev.lucee.org/t/lucee-stable-release-5-3-9-141/10219/2 Adobe CF Builder release - updateFrom Mark on Slack I know I sound like a broken record, but it is really close. I've had 2 long demos of it this week, with one more left. It looks really, really good. I'm using the latest build for all my demos, and its like... right there. There's like, one dumb bug that's probably already been fixed. Look for at least one deep dive engineering talk about VS Code during Developer Week (and I'm pushing for 2 talks because, frankly, an hour isn't enough time to cover everything this tool does). I'm trying so hard not to oversell it here, but I honestly think this is going to become the number 1 CFML IDE tool everyone uses.https://app.slack.com/client/T06T9JEE9/C06TABBT8/thread/C06TABBT8-1653026069.319079 WEBINARS / MEETUPS AND WORKSHOPSOnline CF Meetup - "When Should I Use 3rd Party Libraries vs Roll My Own?", with Gavin PickinThere is always a trade-off between using a 3rd party library and rolling your version in software development. I often hear many of these points in discussions, but I wonder how many people know and consider them, so I wanted to share my pros and cons.This presentation will help convince you that libraries are not EVIL like so many haters believe. Choosing the right libraries will make you more productive and efficient, not lazy. We'll look at how to identify solid use-cases for using a 3rd party library in your application. It gives you a checklist of questions to help you identify the red flags of unsafe, unreliable, poorly supported, or ill-suited libraries.We'll even look at some examples in the CFML Landscape.https://www.meetup.com/coldfusionmeetup/events/286262739/ ICYMI - Ortus Webinar - May - Clearing the Fuzzies on Fuzzy Search with Michael BornMay 27th 2022: Time 11:00 AM Central Time ( US and Canada )Take a walk through the world of search in this webinar which will show why your database search is not smart enough, explain the basics of how fuzzy search works, and show how to use CBElasticsearch to bring the power of fuzzy searching to your CF application.https://cfcasts.com/series/ortus-webinars-2022/videos/michael-born-clearing-the-fuzzies-on-fuzzy-search View all Webinars: https://www.ortussolutions.com/events/webinars Ortus Webinar - June - Getting started with the Legacy Migration with Dan CardJune 24th 2022: Time 11:00 AM Central Time ( US and Canada )We will look at the process of converting legacy .cfm based sites into a more modern coding design which has less overall code, is easier to maintain and manage, mistakes and errors can more readily and speedily identified and fixed, and is easier to read.Registration Link: Coming SoonView all Webinars: https://www.ortussolutions.com/events/webinars June 2022 Seattle ColdFusion User Group MeetingWe are restarting our Seattle ColdFusion User Group meetings and are looking forward to meeting online with all of you.This month's meeting includes a presentation by Leon O'Daniel on sending SMS messages using ColdFusion and the Twilio API.https://www.meetup.com/Seattle-ColdFusion-User-Group/events/285974950/ Adobe WorkshopsJoin the Adobe ColdFusion Workshop to learn how you and your agency can leverage ColdFusion to create amazing web content. This one-day training will cover all facets of Adobe ColdFusion that developers need to build applications that can run across multiple cloud providers or on-premiseICYMI - WEDNESDAY, MAY 26, 202210AM PTWebinar - Exploring the CF Administrator: pt1Mark TakataIn part one of exploring the capabilities of the ColdFusion Administrator, Mark will explore the GUI of this powerful, unique ColdFusion tool, explaining how to use many of the capabilities exposed and available for tuning.https://exploring-coldfusion-administrator-1.meetus.adobeevents.com/ WEDNESDAY, JUNE 15, 20229:00 AM EDTAdobe ColdFusion WorkshopBrian Sappeyhttps://1-day-coldfusion-workshop.meetus.adobeevents.com/ WEDNESDAY, JUNE 22, 20229:00 AM CETAdobe ColdFusion WorkshopDamien Bruyndonckx (Brew-en-dohnx) https://adobe-cf-workshop.meetus.adobeevents.com/ FREE :)Full list - https://meetus.adobeevents.com/coldfusion/ Adobe and Carahsoft workshopsWednesday June 01, 2022Adobe ColdFusion Advanced Workshop CPE credit availableHosted By: Adobe & Carahsofthttps://www.carahsoft.com/learn/event/37899-Adobe-ColdFusion-Advanced-Workshop Tuesday, June 7, 2022Adobe ColdFusion WorkshopCPE credit availableHosted By: Adobe & Carahsofthttps://www.carahsoft.com/learn/event/37401-adobe-coldfusion-workshopCFCasts Content Updateshttps://www.cfcasts.comJust Released Webinar - Michael Born - Clearing the Fuzzies on Fuzzy Searchhttps://cfcasts.com/series/ortus-webinars-2022/videos/michael-born-clearing-the-fuzzies-on-fuzzy-search  2022 ForgeBox Module of the Week Series - 2 new Videoshttps://cfcasts.com/series/2022-forgebox-modules-of-the-week 2022 VS Code Hint tip and Trick of the Week Series - 2 new Videoshttps://cfcasts.com/series/2022-vs-code-hint-tip-and-trick-of-the-week  Coming Soon Last couple of videos for Gavin Pickin - Publish Your First ForgeBox Package LogBox 101 from Eric Peterson Box-ifying a 3rd Party Library from Gavin More ForgeBox and VS Code Podcast snippet videos Conferences and TrainingICYMI - MS BuildMay 24-26, 2022Come together at Microsoft Build May 24–26 2022, to explore the latest innovations in code and application development—and to gain insights from peers and experts from around the world.Regional Spotlights, One on One bookings available and more.https://mybuild.microsoft.com/en-US/home ICYMI - Ioniconf  (Free Online Ionic conference)May 25, 2022Join us for a full day of talks from experts and leaders in the web community, showing how the web is pushing the boundaries of mobile app development. Get insights on the latest web libraries, frameworks, and tools that are empowering web developers to build stunning mobile and cross-platform apps using the power of the web.https://ionic.io/ioniconfUS VueJS ConfFORT LAUDERDALE, FL • JUNE 8-10, 2022Beach. Code. Vue.Workshop day: June 8Main Conference: June 9-10https://us.vuejs.org/Speakers and Schedule Announced https://us.vuejs.org/schedule/ Apple WWDCJune 6 to 10https://developer.apple.com/wwdc22/Quasar ConfPlease let us know about you and what you'd like to speak about in all things Quasar or Vue!!!Conference Date: Saturday, July 9th, 2022 - 3 p.m. GMTDeadline for Proposals: June 9th, 2022Call for Proposals - https://docs.google.com/forms/d/e/1FAIpQLSecQfTFUM1BINAvpPl-Khbk7UYpLk2srIR0pLgMcVjpJwWMCA/viewform THAT ConferenceHowdy. We're a full-stack, tech-obsessed community of fun, code-loving humans who share and learn together.We geek-out in Texas and Wisconsin once a year but we host digital events all the time.WISCONSIN DELLS, WI / JULY 25TH - 28TH, 2022A four-day summer camp for developers passionate about learning all things mobile, web, cloud, and technology.https://that.us/events/wi/2022/ Our very own Daniel Garcia is speaking there https://that.us/activities/sb6dRP8ZNIBIKngxswIt Adobe Developer Week 2022July 18-22, 2022Online - Virtual - FreeThe Adobe ColdFusion Developer Week is back - bigger and better than ever! This year, our experts are gearing up to host a series of webinars on all things ColdFusion. This is your chance to learn with them, get your questions answered, and build cloud-native applications with ease.Note: Speakers listed are 2021 speakers currently - check back for updates - I heard speakers were being contacted, and info coming very soon!!! Wink wink nudge nudgehttps://adobe-coldfusion-devweek-2022.attendease.com/registration/form VueJS Forge After many requests - New Dates - July 13th-14thDue to many of you taking advantage of early summer vacations, we have decided to postpone the event to a date that will make sure as many of you as possible won't miss out on the opportunity to attend Vue.js Forge!Organized by Vue School_The largest hands-on Vue.js EventTeam up with 1000s of fellow Vue.js devs from around the globe to build a real-world application in just 2 days in this FREE hackathon-style event.Make connections. Build together. Learn together.Sign up as an Individual or signup as a companyCompany Deal - $2000 for a team of 5, includes VueSchool annual membership and guaranteed seat at the workshops at VueJS Forge as well… and you can pick your teamSneak Peek into the Project: If you've ever wanted to build your own SaaS app, then “the project” is definitely right up your alley! Work with Vue.js, VueUse, Vue Router, and Pinia on the front-end along with a dynamic back-end to create the main application. Also create a marketing site that's easily maintained by a non-technical marketing team, then deploy everything live to the world.https://vuejsforge.com/Into The Box 2022September 6, 7 and 8, 2022One day workshops before the two day conference!Super Early bird pricing available until May 31st, 2022Conference Website:https://intothebox.orgITB Blog has new updates almost every day!CF Summit - OfficialMirageOct 3rd & 4th - CFSummit ConferenceOct 5th - Adobe Certified Professional: Adobe ColdFusion Certification Classes & Testshttps://cfsummit.adobeevents.com/ Registrations are now open.For just $99!Grab your early-bird tickets before June 30.Call for Speakers is now OpenFrom Slack re Adobe Certified ProfessionalThe Adobe Certified Professional: Adobe ColdFusion cert is a totally different, MUCH more difficult and comprehensive certification than the CF Specialist previously offered. Mark Takata, Nolan and Dave F + the CF engineering team, Elishia and Kishore all spent a week together building the new one and it is HARD. I highly recommend it as a test of your skills, I guarantee everyone will learn something new.Yes, but there's also over 100 hours of video to go over before the 1 day lecture + cert. So you watch videos, sit in class, then take the exam there. It is no joke, definitely challenging, but super satisfying to pass.Plus you get access to those videos for a year, which is nice for going back and reviewing things down the line.Into the Box Latam 2022Dec 7thMore information is coming very soon.CFCampNo CFCAMP 2022, we're trying again for summer 2023TLDR is that it's just too hard and there's too much uncertainty right now.More conferencesNeed more conferences, this site has a huge list of conferences for almost any language/community.https://confs.tech/Blogs, Tweets, and Videos of the Week 5/31/22 Tweet - James Moberg asking Eric about QB outside of ColdBoxI'm a non-Lucee, non-ColdBox #CFML developer. Can I use current version QB in a #ColdFusion 2016 project? I'm inquiring because there aren't any disclaimers or examples.  Thanks.https://twitter.com/gamesover/status/1531634319017398278https://twitter.com/gamesover/status/1531656865641222145 Sam Knowlton goes over how to set it up outside of ColdBox in this CFCasts video:https://cfcasts.com/series/itb-2020/videos/d1s4-ortus-qb-for-the-rest-of-us-gigawatts-of-fluent-and-functional-samuel-knowlton 5/31/22 Blog - Parsing Liquid Tag Embeds With jSoup And Lucee CFML 5.3.8.201On a recent episode of Dev Discuss, Arit Amana talked about refactoring the way Liquid Tags are processed in the Forem platform. I had never heard of Liquid Tags before. Apparently, it's a syntax that some platforms use to enable dynamic content. One subset of this syntax allows users to embed external content within their own content. This piqued my curiosity since something like this might give me a way to allow readers of this blog to embed fun things within the comments. As such, I wanted to experiment with parsing and processing Liquid Tags in Lucee CFML 5.3.8.201.https://www.bennadel.com/blog/4272-parsing-liquid-tag-embeds-with-jsoup-and-lucee-cfml-5-3-8-201.htm 5/25/22 Blog - Adam Cameron - A super-quick Observer Pattern implementation in CFML, and I skip TDD. Or do I?There's a possible "Betteridge's law of headlines" situation there. I'm not actually sure yet.A few days back I was chatting to someone about application-scope-usage, and how to trigger an event when any changes to the application scope took place. I mentioned that the application scope should never be accessed directly in one's application code, and it should be wrapped up in an adapter. And it's easy for one's adapter to trigger events if needs must. An implementation of the Observer Pattern would do the trick here.Then it occurred to me that I have never actually implemented the Observer Pattern, and I thought I might give it a go.https://blog.adamcameron.me/2022/05/a-super-quick-observer-pattern.html 5/30/22 Blog - Adam Cameron - CFML: Implementing an ObservableScopeAdapter using the Adapter Pattern, Decorator Pattern and Observer PatternIn my last article (A super-quick Observer Pattern implementation in CFML, and I skip TDD. Or do I?), I did what it suggests: I created a very simple observer pattern implementation in CFML.https://blog.adamcameron.me/2022/05/cfml--implementing-an-observablescopeadapter-using-the-decorator-pattern-and-observer-pattern.html 5/30/22 - Blog - Ortus Solutions - Into the Box - Updates as of May 30th, 2022Into the Box is sneaking up closer and closer. With so many announcements, we can't post them all to the Ortus Solutions blog, so we're going to just give you updates when we can. To read all of our blog posts from ITB, visit the site or subscribe to RSS https://intothebox.org/blog https://www.ortussolutions.com/blog/into-the-box-updates-as-of-may-30th-2022/?utm_medium=referral&utm_source=podcast 5/28/22 - Blog - Ben Nadel - Code Kata: Array Intersection, Union, And Difference In Lucee CFML 5.3.8.201For the last week or so, I've had some extreme tunnel vision at work as I was barrelling towards a deadline to finish building a Mail Blasts feature for InVision. And, now that I'm done (crushing it), I need a little breather. As a fun code kata, I thought I might play around with calculating array interactions, unions, and differences in Lucee CFML 5.3.8.201. This isn't something that comes up often in my day-to-day work. But, it's yet another opportunity to showcase the unyielding power of the Struct as Index pattern in ColdFusion.https://www.bennadel.com/blog/4271-code-kata-array-intersection-union-and-difference-in-lucee-cfml-5-3-8-201.htm 5/28/22 Blog - Tony Junkes - PDF to Images With PDFBox and CFMLRecently, I worked on part of a feature for viewing a PDF, page by page, in the browser. To accomplish this, the PDF is converted into JPG images and displayed in a carousel. In this article, I want to touch on the image conversion and how it can be done using Apache PDFBox.https://tonyjunkes.com/blog/pdf-to-images-with-pdfbox-and-cfml/ 5/27/22 Blog - Peter Amiri - CFWheels - CFWheels has moved to GitHub DiscussionsAlthough Google Groups has served us well over the years, it's started to lose some essential abilities and it's looking a little long in the tooth.We have decided that it would be a benefit to the community to migrate to GitHub Discussions. GitHub Discussions allows us to bring our community closer to where the code lives.https://cfwheels.org/blog/cfwheels-has-moved-to-github-discussions/ 5/27/22 Tweet - James Moberg - when the 3rd arg for ReplaceNoCase() changed to "callback"?Do any #ColdFusion developers know when the 3rd arg for ReplaceNoCase() changed to "callback"?CF3 (1997): substring2Current Lucee: replacementI'm not sure when it was changed to "callback", but docs should be updated to indicate that "string" can be used too. #cfmlhttps://twitter.com/gamesover/status/1530208970714927104 5/26/22 Blog - Gavin Pickin - Ortus Solutions - Case Insensitivity Issues on WindowsIf you are using Windows these days, Windows 10 and 11 give you many of the tools you want and need in the Web Developer Toolbox. After working on Macs and deploying to Linux for a long time, I made the switch back to Windows a while ago, and the list of things that I genuinely miss on Windows is pretty slim, with one major issue, Case Sensitivity or lack of, on Windows.https://www.ortussolutions.com/blog/case-insensitivity-issues-on-windows/?utm_medium=referral&utm_source=podcast 5/26/22 - Blog - Into the Box - Into the Box 2022 - 5th and Final Workshop SelectedWe previously announced the first four workshops, but our fifth and final workshop was down to a tough decision between 3 great workshop options. We put the poll out on twitter, and we selected the final workshop,https://www.intothebox.org/blog/into-the-box-2022-5th-and-final-workshop-selected/?utm_medium=referral&utm_source=podcast 5/26/22 - Blog - Mark Takata - Twitch StreamingDid you know I #stream #coding stuff on Twitch? Every Tuesday & Thursday at 1pm PST, I play around with Adobe #ColdFusion, code in #CFML, and generally try to learn something new each stream. Today I went over how to leverage the native JSON output of CFQuery to generate tabular data using #DataTables.https://www.linkedin.com/posts/marktakata_marktakata-twitch-activity-6932560214617452544-d8hd/   CFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 91 ColdFusion positions from 50 companies across 45 locations in 5 Countries.3 new jobs listedFull-Time - Senior Coldfusion Developer at Windsor Mill, MD - United States May 25https://www.getcfmljobs.com/jobs/index.cfm/united-states/Senior-Coldfusion-Developer-at-Windsor-Mill-MD/11478Full-Time - Senior Coldfusion Developer at United States - United States May 24https://www.getcfmljobs.com/jobs/index.cfm/united-states/Senior-Coldfusion-Developer-at-United-States/11477Full-Time - Senior Software Engineer - Coldfusion/C# at Plano, TX - United States May 24https://www.getcfmljobs.com/jobs/index.cfm/united-states/Senior-Software-engineer-coldfusion/11475PATREON SPONSORED JOB POSTING!Hagerty - MotorSportRegSenior Software Engineer, MotorsportWe are seeking a Senior Software Engineer to work primarily with Node/Vue.js, ColdFusion, and AWS to improve our platform and build greenfield experiences.We are a 25-person team supporting 1,600 organizations with our SaaS CRM, commerce and event management platform. With 8,000 events managed in our marketplace annually by our customers, our goal is to be the number one software platform for automotive and motorsport events.Ready to get in the driver's seat? Join us!https://bit.ly/3985J3U Other Job Links Ortus Solutionshttps://www.ortussolutions.com/about-us/careers  Clear Capital - Carol from Working Code Pod  There is a jobs channel in the cfml slack team, and in the box team slack now too ForgeBox Module of the WeekCommandbox LicensesWhen run from the root of a Coldbox site, this module will output in the CommandBox terminal a "tree" formatted list of dependencies and what license (MIT, Apache2 etc) that the package is bound by. Useful for code reviews.https://www.forgebox.io/view/commandbox_licenses VS Code Hint Tips and Tricks of the WeekMySQL Shell for VS CodeThis extension enables interactive editing and execution of SQL for MySQL Databases and the MySQL Database Service. It integrates the MySQL Shell directly into VS Code development workflows.https://marketplace.visualstudio.com/items?itemName=Oracle.mysql-shell-for-vs-code  Thank you to all of our Patreon SupportersThese individuals are personally supporting our open source initiatives to ensure the great toolings like CommandBox, ForgeBox, ColdBox,  ContentBox, TestBox and all the other boxes keep getting the continuous development they need, and funds the cloud infrastructure at our community relies on like ForgeBox for our Package Management with CommandBox. You can support us on Patreon here https://www.patreon.com/ortussolutionsDon't forget, we have Annual Memberships, pay for the year and save 10% - great for businesses. Bronze Packages and up, now get a ForgeBox Pro and CFCasts subscriptions as a perk for their Patreon Subscription. All Patreon supporters have a Profile badge on the Community Website All Patreon supporters have their own Private Forum access on the Community Website https://community.ortussolutions.com/ Patreons John Wilson - Synaptrix Brian Ghidinelli - Hagerty MotorsportReg   Eric Hoffman Gary Knight Mario Rodrigues Giancarlo Gomez David Belanger Dan Card Jonathan Perret Jeffry McGee - Sunstar Media Dean Maunder Wil De Bruin Joseph Lamoree Don Bellamy Jan Jannek Laksma Tirtohadi Carl Von Stetten Jeremy Adams Didier Lesnicki Matthew Clemente Daniel Garcia Scott Steinbeck - Agri Tracking Systems Ben Nadel  Brett DeLine Kai Koenig Charlie Arehart Jonas Eriksson Jason Daiger Shawn Oden Matthew Darby Ross Phillips Edgardo Cabezas Patrick Flynn Stephany Monge John Whish Kevin Wright Peter Amiri You can see an up to date list of all sponsors on Ortus Solutions' Websitehttps://ortussolutions.com/about-us/sponsors★ Support this podcast on Patreon ★

The Bike Shed
291: All Things Inertia.js with Jonathan Reinink

The Bike Shed

Play Episode Listen Later May 4, 2021 50:25


This week Steph's taking a quick break, but while she's off, Chris is joined by a special guest - Jonathan Reinink. Jonathan is the creator of Inertia.js. Inertia.js (https://inertiajs.com/) lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers, and listeners of the show will certainly have heard Chris rave about it on previous episodes. Chris and Jonathan dig into what makes Inertia unique as compared to frameworks like Phoenix LiveView, Laravel Livewire, and Rails' Hotwire & Turbo. They also discuss how Inertia embraces the URL, the unique "protocol" nature of Inertia, and how to consider Inertia alongside native mobile applications. Throughout the conversation, Jonathan's consistent philosophy of wanting to build robust, performant, and delightful applications shines through. Jonathan Reinink on twitter (https://twitter.com/reinink) Inertia.js (https://inertiajs.com/) Eloquent Performance Patterns (https://eloquent-course.reinink.ca/) TailwindCSS (https://tailwindcss.com/) Church Social (https://churchsocial.com/) Jonathan on Full Stack Radio (https://twitter.com/adamwathan/status/1192152495407222784?s=21) Foundational blog post: Server-side apps with client-side rendering (https://reinink.ca/articles/server-side-apps-with-client-side-rendering) Laravel Livewire (https://laravel-livewire.com/) Alpine.js (https://github.com/alpinejs/alpine) Phoenix LiveView (https://github.com/phoenixframework/phoenix_live_view) Hotwire Turbo (https://turbo.hotwire.dev/) The Inertia Protocol (https://inertiajs.com/the-protocol) Transcript: CHRIS TOOMEY: I am seeing what I believe to be the relevant things. JONATHAN REINIK: Let's dance. CHRIS: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. And this week, Steph is taking a quick break, but while she's away, I'm joined by a special guest, Jonathan Reinik. Jonathan Reinik is the creator of Inertia.js. And listeners of the show will know that that is increasingly one of my favorite frameworks and, frankly, just ways to build applications on the internet. Jonathan is also the creator of the Eloquent Performance Patterns course, which teaches the Eloquent ORM, which is the ORM in Laravel but really digs into deep performance and database things, so really covering that back end as well. Jonathan also collaborated on the development of Tailwind CSS, a utility-first CSS framework which again is something that I have spoken of in very high terms on this podcast. And lastly, Jonathan currently runs his own SaaS business called Church Social. So really, Jonathan is a bit of a quadruple threat covering back end and front end design and entrepreneurship. So pretty much everything you want to see. And frankly, I've been so impressed by the breadth and the depth of Jonathan's work and just the deep way that he is thinking about building applications. So I am absolutely thrilled to have him on the show today. So without further ado, Jonathan, thank you so much for joining me. JONATHAN: Thanks so much, Chris. That was a very kind introduction, and yeah, it's awesome to be on The Bike Shed. I've been a long-time listener, and as I've said to you, I really appreciate the support that you've given to my work over the years. So yeah, it's awesome to be here. CHRIS: That's interesting. We're measuring it in years now, but it's a very sincere thing for me. I think with Inertia, you've built something that is both very unique and a special approach to how we build things, but it's also built from very familiar pieces and allows us to reuse the deep amounts of knowledge that we have in the Rails community or the Laravel community. But actually backing up just a little bit, because we're going to dive deep on Inertia.js today, for folks that are not as familiar or have only heard me mention it in passing, there's a wonderful episode of Full Stack Radio where Jonathan and Adam Wathan talked about Inertia.js, and I think gave a very good foundational summary. So we'll link to that in the show notes in case anyone wants to dig in a little bit more. Likewise, Jonathan has a really fantastic blog post called Server-side Apps With Client-side Rendering, which, as far as I can tell, is the manifesto that began this whole journey for you. And I really love that you have done so much of the work in public, and people can see the history of how this idea has evolved and really crystallized into what now is a very production-ready framework in sort of the way to build things. But I would love to hear right now just for anyone who is not as familiar and also just to hear how you summarize it at this point in time. What does your introductory elevator pitch for Inertia.js sound like in April 2021? JONATHAN: That's a great question. So it's hard to answer this without unpacking a lot of different things. And you mentioned the podcast with Adam; I think that's good because it goes in a lot of the technical detail of how Inertia works and why I created it. But the elevator pitch these days for when I talk to someone about it, it's generally I explain it as a way of building modern web apps. And in particular, when I say modern, I mean web apps that have a lot of JavaScript, so frameworks like Vue or React or Svelte, so applications that are built using those tools. And the key thing that Inertia offers is for you to develop these modern applications without having to first build an API sort of the way historically if you ever wanted to use one of these modern web stacks like Vue or React or Svelte, you could use them within Laravel or Rails by inserting them into your Vue or into your Blade templates or your ERB templates. But it was difficult if you ever wanted to turn it into a legitimate single-page application. And anytime you would ask that question, if you go out on the internet and say, “Hey, how do I build SPA with, say, Vue and Laravel or React and Rails?” The answer was always, “Well, you need to build an API. You need to build an API.” That was always the missing piece because that's the way that everyone in the Jamstack era that we're in that's the way that everyone's building their applications that are like these heavy client-side applications. And I totally get the need for those style apps and the place for those style apps. But I really missed this way that you could build an application with Rails or with Laravel where you could just literally spin up a new app, create some routes within your server-side framework, create some controllers, create some views, and have a working application within minutes really. You could have something being displayed on the screen within minutes with these classic monolith applications. And if you wanted to do the same thing, if you wanted to get an app up and running in minutes with Vue or React as your completely client-side SPA scenario, it just wasn't working because as soon as you say, “Well, in order to do that, you're going to need to have a back end Rails or a Lavarel application, and then a client-side Vue or React application. And then you're going to have to create this API that connects the two together.” There's just a lot more work that goes into that. It's not only the work of actually creating the API; I find a lot of the decisions that come along with building an API; it's like, okay, what does the abstraction look like? Am I going to build it with REST, or am I going to build it as a GraphQL API? And all the decisions that come along with designing and architecting that which again has its place. But there's just something awesome about saying, “Here's a new route. Here's the view that I want to render. And here's the data that I want that view to have,” and just go off and do it, and it's done. And some people ask me, “Well, with Inertia, if you're not building an API, what happens someday if you need an API?” And they frame it like, well, this is a terrible decision. You should be starting with an API. But for me, the reality is that so many of the web applications that I was building and that I've seen other people building is they had already made the decision not to use an API because they had already made the decision that they wanted to use Laravel as a monolith app that had their controllers and the routes and their views all within that and the same thing with Rails. So if you've made that decision to build a monolith app with Laravel or Rails, you've already made the decision to not build it with an API. I was coming in from the other way. It's like, I just want to build an app the way I've always built in Laravel, and I don't want to have to build this API. Of course, there are times where you do need an API, which I think we're going to talk about maybe a little bit later if I don't ramble on too long, where it does make sense to have an API. But yeah, that's kind of the elevator pitch. I think maybe to close off that thought is that I really, really enjoy having a tight coupling between my routes and my data layer and my views, which, again, I appreciate that. That probably sounds like blasphemy in modern web development. But for me, I think it's so empowering when you say, “Hey, I have a controller that's given me some data, and I have a view that's rendering the data, and those two know about each other, and those two depend on each other.” You can work so fast because I'm not thinking, okay, well, I have this API endpoint that returns a user, and that has their first name and their last name and their email. But I also need to think about it in the situation in the future where I might need this attribute or that attribute or some other attribute and make sure I have all that figured out ahead of time or at least have a way to add it in later. And all of that thinking that goes into designing an API, I find that that adds a lot of overhead. And then maybe related to that also is the amount of times that you're rendering a view within your application that needs data from multiple different places. And to me, this is like one of the huge performance benefits that you get with a tool like Inertia is with, say a REST API, GraphQl solves this, but with a REST API, you're often getting too much data for what you actually need for the page, or you're often making more than one HTTP request because you say, “Well, on this particular dashboard, I need some user information. So I have to hit the user endpoint. I need maybe the latest product sales data, so I need to hit that endpoint.” And you're dealing with these performance issues that you get with a REST API that with Inertia, you don't have that problem because it's just going back to classic Laravel Blade views or Rails and ERB templates. Am I saying that right, ERB template? CHRIS: Mm-hmm. JONATHAN: In those situations, you say, “Well, if I need data from three different places, well, I'll just grab data from three different places and send it to the view, and that's fine. And I can do that in the most efficient way and get the data that I need specifically for that view.” So anyway, that's some of the thinking that drove me to build Inertia and some of the things that I was going for. And yeah, it was an evolution. It really came out of me using Turbolinks and really appreciating what Turbolinks gave me but taking it to that next step where it's like Turbolinks, except it's built with the same principles as Turbolinks but built for modern client-side frameworks like Vue and React. CHRIS: Yeah, that all feels very familiar to me. And in my experience, I've now worked with Inertia on a handful of projects, but in particular, I have just a small personal app that I use to manage different aspects of my life. And it's been my playground for different technologies. And I've migrated it through a bunch of different versions where it used to just be a Rails app. And I was like, oh no, the thing that I need to do to be on the cutting edge is to turn this into -- it's a Rails app on the back end with an API, and then it's a React app. It's separately deployed, but those two talk to each other. And what you were talking about of the deep coupling, I think that coupling exists whether we want it to or not. And so embracing that and revisiting when I eventually migrated that application to use Inertia and the client-side stuff folded back into the core codebase. Now deployments all go out in sync. And that turns out to actually be a really nice thing and a non-trivial thing to solve otherwise. As a developer of one on this particular project, the amount of complexity that was removed from the app when I switched it over to Inertia was amazing. I got to remove client-side routing. I got to remove client-side state management, which I think I was using Redux at the time. I got to remove some form helpers that I had. I think I might've been using Formik or React Use Former, any of those. But there are so many different little pieces that you ended up cobbling together to make an application. And it was amazing to me as I moved to Inertia, where I was like; actually, I don't need any of those, and routes suddenly are defined in one place in Rails in a familiar way. But things like redirects all work -- It feels just like a Rails app but with the extra abilities that a front-end client-side framework gives you when you want those when you need those. But otherwise, it really does feel like I'm rendering to an ERB template. It just happens to be that that template is rendering on the client-side and is written in React or Svelte or whatever the front-end framework is. But it almost feels like progressive enhancement. I'm borrowing a term, and it's not actually applicable here, but it really feels like that. It's like, oh, it's a Rails app, but I just want to make it a little bit fancier, and Inertia does that in such a fantastic way. And actually pivoting just a bit, as far as I can tell, there seems to be an explosion of thinking in this space. There are a handful of frameworks, namely Laravel Livewire, which is often paired with Alpine.js. Elixir has Phoenix LiveView, and then Rails has the Hotwire suite, which Turbo and Stimulus are the most pointed considerations. But interestingly, I think all of those frameworks, which I think are trying to provide a very similar experience, tend to keep things on the server-side, so using the Laravel Blade templates or the ERB in Rails. But you've taken the different approach to say, “No, let's embrace this front-end technology where it makes sense.” And again, there are a lot of pieces that can fall in, and I don't need the Redux and the React Router and all of those things but still use that client-side framework to be the rendering engine. And so I'm intrigued if you can talk a little bit more about that and that trade-off because I think it really differentiates Inertia and its approach. I personally found it to be fantastic, but I'd love to hear a little bit more about your thinking on that. JONATHAN: The thing about modern websites and web apps, in particular, is it doesn't matter how you slice it; we need JavaScript. So if you disagree with me there, then everything I say from this point on will not make sense to you. But I think we can all agree that modern web apps need JavaScript. JavaScript is the programming language of the web of the browser that allows us to do whatever magical things that we want to do. And if you look at tools like Phoenix LiveView, Laravel Livewire, and even the new Turbo stuff from the folks over at Basecamp, they all are embracing JavaScript in the same way. It's just they're framing it in a different way. I would say, especially with Livewire and LiveView, they're almost creating like an abstraction between the server and the way you write things on the server and the client-side. And they're almost hiding the JavaScript, which is really, really cool. I think it's such an interesting thing to try to do where somebody who's not familiar with JavaScript and not familiar with Vue, React, and Svelte can go and do things, write server-side code that gets rendered server-side. And then there's some JavaScript that these libraries insert that allow you to do more interesting things, whatever those things might be, show a drop-down, or drag and drop or validate a form or submit a form without actually submitting it fully to the server but submit it over XHR instead, all these kinds of things. But the point is they're embracing JavaScript just in a different way. And same with Turbo, Turbo gives you a way to write JavaScript for an application that mostly has server-side rendered HTML. So I think it's important to just recognize that JavaScript is key in all these frameworks. With Inertia, it's the same idea in that Inertia wants to embrace that classic way of building applications using the classic server-side monolith application framework like Laravel or Rails. But the difference is it acknowledges or embraces these existing client-side frameworks that have really grown in popularity. And the three, again, I keep mentioning them, Vue, React, or Svelte. Svelte being an up-and-coming one that's not nearly as popular yet, but it seems to be gaining a lot of steam. CHRIS: It's on the rise. That's my long [inaudible 14:46] JONATHAN: Yes, and people keep saying that. So anyway, Inertia basically said, “Hey, we want to keep building server-side apps. We want to keep building monolith apps similar to these other tools, except what we're going to do is we're going to embrace the fact that there's this really, really amazing tooling that's been developed for the client-side.” And it just doubles down on that. So for me, the reason that I ended up here was because, in my own SaaS application, it was a Laravel application that started with mostly Blade views initially. And then, over the years of building it, which has been many, many years, I've slowly added more and more Vue components within my app. And initially, the way I did it is those Vue components would just be inserted in as regular HTML tags in my server-side rendered templates. And then, when the page renders, those Vue components would boot up and do whatever they need to do. So for me, when I was building Inertia, I had already fallen in love with Vue, in particular, and having all the power of these client-side frameworks. And there is so much there. It's not just Vue, React, and Svelte; it's all the amazing tooling that's available out there that you can add on top of it. And this is the thing I often tell people that Inertia isn't -- we say right on the homepage, “Inertia isn't a framework.” And the reason why I say that is because I don't want people to think of Inertia as an alternative to Vue, React, and Svelte. Do you know what is a better way to frame it? It's actually more of an alternative to React Router or Vue Router; that's really more what it is, where you can say, “All my routings are handled server-side,” and that has all kinds of interesting implications. But it's more of a router, and it just so happens to pass along that routing control over to the server. Anyway, so that's really for me what differentiates Inertia from those other tools is because it's really doubled down on these client-side frameworks. And I think the reason why Inertia has been relatively popular is because people know Vue and people know React. And when it comes to then working with Inertia, it's not some new thing that they have to learn. It's an existing set of tools that they're already super comfortable with. And in so many ways, when you're building an Inertia app, you're kind of building a classic Vue app or a classic React app or a classic Svelte app. It's just there's a bunch of pieces missing. Like you said, it's like a bunch of the client-side state management stuff, which nobody likes anyway, is gone. The other thing that's gone is client-side routing. You don't have this back-end routing is over here now, and client-side routing is over here, and I have two different routing definitions. It's like, no, that's all just server-side now in one place. The other amazing thing you get is you mentioned redirects and that whole HTTP layer you get just along with Inertia for free because it's just part of your server-side stack. And one key aspect of that is auth. You can just use good old-fashioned nothing is better than session auth. Like, it just works. And, so whatever your typical solution for doing session auth in Laravel or Rails or whatever server-side framework you're using, all this stuff just works. So anyway, coming full circle on your question, the reason why Inertia has gone this way is because I really think that there's a huge amount of value with using these modern frameworks. And we just doubled down on using them. CHRIS: Yeah, that resonates with my experiences using Inertia and in contrast to the other frameworks. Everyone seems to be trying to get to the same place of providing a mechanism to have more almost app-like functionality but still using the traditional server-side technologies. But I think Inertia has chosen an approach to that that is unique in that category and really has provided a fantastic outcome. I've been very frankly surprised by the fidelity of experience and how app-like I can get something to feel when building with Inertia while still using all the same technologies. And the fact that I can use just traditional server-side auth and redirects and things like that is just so nice, and everything feels right. There's an experience that I've had on many applications that are, say, a React client-side bundle that gets sent down and then boots up, and then the layout starts to render. And as its data fetching, it gets like a 402 response or something like that in that data fetching. And then it's like, oh no, I need to hard redirect you over here on the client-side to this other page. And there's this junk of semi-filled-out layout, and then suddenly you're on the login page. And again, with Inertia, it looks like a normal server-side rendered app, but it isn't in the ways that really matter to us. And it is one of those things where the more I played with it, the more there's an experience of interacting with Inertia that it surprises me consistently how nice it is to work with it and yet it's so much easier to maintain an application using it. I know I'm raving here, but I am really a big fan of this for everyone listening in the audience. JONATHAN: [laughs] CHRIS: And actually to continue on one of the things you were saying there, one of the things that stands out to me in Inertia is the way that it embraces URLs and to a certain degree, that seems like a purposeful thing, but it also seems like it just naturally falls out of how Inertia works because we're no longer using a client-side state management technology, the way to manipulate state is through the URL. If you want to see a different version of the to-do list you're looking at when you click on that link, you change the URL and the state changes in response to that. And so everything is fundamentally kept in sync, but URLs are very much at the center of the architecture, and I really love that so much. I think URLs are often forgotten in client-side frameworks or underserved or underused. And it turns out in my experience as a user and both having served many users, people love to command-click on links. They love to right-click open a new tab. They love to be able to reload and see the same thing on the screen when they reload the page. They love to be able to bookmark. These are all really wonderful things that come out of working on the web. And the fact that Inertia has a pit of success around having URLs and have that be the way that we drive state is just so fantastic. So I'm wondering how much of that was very purposeful on your part versus how much of that fell out of the architecture. JONATHAN: That is very much something that fell out of the architecture. I say that not to say that I don't value URLs; I absolutely did. That's the way every single one of my Laravel built apps worked. It always starts in the route file. You hit the route file, you define a new route, and it goes from there. So I absolutely think that the URLs are critical. But the fact that it just ended up working out so nicely was, yeah, I'm going to say it was a bit of luck, a bit of coincidence. I find this is what's so interesting when you start pushing on a new way of things; you initially don't really know where it's going to end. It's like you have some ideas of how the tool can work and where it might go, but I think there's a lot of unknowns that you just figure out after a while. So the thing I said earlier actually about the fact that Inertia in a lot of ways is like a client-side router; it's, it's a routing library, to put it that way. I had been working on Inertia for a year and a half, and then a buddy of mine, Taylor Otwell, the creator of Laravel, he and I were chatting, and he said to me at one point he's like, “Oh, you know what? Inertia is actually super simple. It's really just a routing library.” And it was like, bam. It was kind of that moment; it's like, oh yeah, I hadn't thought of it like that at all. But when he said that, it made a ton of sense to me. So it's just this interesting progression the more you work on something, and the more you push on the edges, you learn what's possible and what it even is. I had this interesting experience, so remembering that Inertia came from Turbolinks. So I had my whole app built with Laravel ton of server-side rendered templates with Blade with view mixed in. And I had the SPA mode by clicking around using Turbolinks. So when I decided to try building Inertia, I removed Turbolinks, and all these requests now happened over XHR but using this preset JSON structure that powers Inertia. I really, in my mind, had this idea that it was only for GET requests, for GET visits; it was just for that. So the initial version of Inertia, there was no Inertia.post or Inertia.put or anything like that. It just wasn't something I even thought was possible. But then I remember, and this is often how it goes; I was out for a hike that day to get away from the computer for a little while and just let your brain drift; I'm sure you can relate to that. I was like, wait a minute; I could totally just support POST, PUT, PATCH, DELETE. And that was such an aha moment for me where I just realized that it was so much more than what I originally thought it was. And then the whole thing from that I remember it was a bit of like a waterfall effect after that where I remember running home out on that hike and hacked it together, and then it was like, okay, well, if I submit a form using POST, well, okay, I'm on the create user page. And I submit this form using Inertia.post to the user's endpoint. I'm like, well, how do I now end up back at the user index page or whatever page, maybe the user edit page. I'm like, wait a minute, I can just return a redirect back to the user index page, and it's literally going to return an Inertia response from the user index page. And then the way Inertia works is it dynamically swaps the page component client-side. And it was just like, oh, this is way too cool. And this really drives my thinking now that it's become a little bit more clear to me is that it really it's all based on HTTP using headers and normal HTTP stuff like redirects are such a critical piece of the story. But to me, that's super neat that, in a way, it's like a throwback to the fundamentals of the web and the browser and the fact that Inertia can just use those things,,, and it doesn't have to be fancy in a lot of the ways. It can just rely on those existing core pieces of the browser. So, yeah. CHRIS: It really is interesting to me how it feels like progressive enhancement in that way where you're building on top of these core fundamentals of HTTP and requests and redirects and status codes and things of that nature. Particularly interesting to me was it took me a while, I'm going to be honest, to figure out forms and particularly validation errors in Inertia. And that is entirely my fault. You have absolutely fantastic documentation. I am so impressed by the quality and the density of the documentation that you have that really covers everything. If we're being honest, I hadn't read the page, but I was doing form posting and then the subsequent errors and how you deal with that. I was doing it in a very traditional Rails way which if we're being honest, that is not a fundamental of how HTTP works. Rails just chose an option of oh, if you POST but we don't create the object because there's a validation error, then we're going to stay on the URL of the POST, so the collection route, but we're going to re-render the form in line. And that's a choice that Rails made that is interesting because at that point, if a user reloads the page, then things are weird, and it's not going to reload. They're not going to see the same thing after that reload, or it's going to try to repost or et cetera, et cetera. There's a bunch of edge cases there that sort of fall out. Whereas with Inertia, you end up redirecting back, and there's this interesting handshake of the errors, but from an end-user experience, it is absolutely fantastic where you stay on the form; the URL does not change. Technically, there's a POST and a redirect back under the hood, but Inertia just handles all of that for you. And you end up with sort of in-line validation errors. But you don't clear out any fields, and there are just wonderful things that fall out of it that again took me a while to get there, but it was another one of those oh, wow, this just naturally falls out of the architecture, but it's so nice and such a nice incremental advance on top of frankly, the stuff that I was doing in Rails historically. JONATHAN: So the way that Laravel works and it's always worked this way is when you make a request using POST or PATCH or DELETE or whatever to an endpoint, and that endpoint does its validation in the event that that validation fails, this is just like built-in standard like Laravel Stock behavior. It automatically redirects you back to the endpoint that you were on. So if you're on the create page or the edit page, it automatically redirects. That's just Laravel behavior. And what it does is it takes those errors that come out of the validator, it flashes them to the session, and then when the forum page reloads, you have those errors available to you in the session. Now, of course, if you're building like a classic server-side rendered application and you redirect now back to your form, you have to repopulate old form inputs, which is not a lot of fun, which you don't have any of that stuff with Inertia because Inertia allows you to preserve your state. But anyway, that's a separate thing. But for me, it's like you build a tool a little bit like in your own silo and the world that you know, and for me, that's Laravel. But there are also ideas that you get that just come from the tooling that you use, and the fact that Taylor Otwell made that decision in Laravel at one point is absolutely what now dictates how is the go-to way to do it in Inertia, just because it works so nicely. CHRIS: I wonder if there's been any consideration in the Rails world to adopt that because I think from an experience perspective, it feels like it's a better thing. It feels like it has the same robustness and guarantees that I would expect. But yeah, that's interesting. It makes sense that that was just naturally there because, again, it didn't feel like the obvious correct thing that Rails was doing. It was always a little bit odd and so interesting that Laravel was already there. But then Inertia can take it that one step further. But taking a slightly higher level view of all of this, one of the things that's really interesting about Inertia to me, especially in contrast to some of the other frameworks that we've been talking about like the Livewires in the LiveViews is Inertia is almost at its core a protocol more than it is…it's a sum of pieces, and with Inertia, you have a server-side adapter, so there's the Rails adapter and the Laravel adapter. And then, on the client-side, you have a separate either Vue or React or Svelte. So those are the officially supported ones on both sides, but there's also been a swell of community support. And so there's a Django one, which I'm not sure if it's currently maintained, but I just saw a Clojure one the other day. There's a Java Spring Boot. So those are all server-side adapters. I haven't seen as much on the client-side, but I imagine there are at least a handful of them out there. And it's so interesting to me that there's this core idea that you define this protocol of communicating back and forth from the server to the client and now this collection of things that are growing around that. And I wonder again, how much was that purposeful versus how much did that just happen? And then further to add a second question to complicate things, how are you thinking about managing that community? Because my sense is that this could allow for Inertia to be so much of a bigger tent and really bring in the best ideas from all of these different communities and end up with something at the core of this Inertia thing that is the best of every community and all of that. So yeah, a lot of questions there, but I'll hand it over to you because I'm super interested. JONATHAN: So I think when I first got going, it was Laravel and Vue; those were the tools that I worked with. And often, the best software and the best open-source software in my mind comes out of trying to solve something for your own needs. So that's really where Inertia came from and specifically for Laravel and Vue. But I quickly realized early on that it didn't have to be just a Vue and Laravel thing. So intentionally early on, I had this idea of trying to build it with multiple adapters, and I had this idea that you could build as many server-side adapters as you want and as many client-side adapters as you want, and maybe we'll officially maintain a certain amount of those, which is what we do right now. We officially maintain the Vue, the React, the Svelte adapters. And then, we also maintain officially the Laravel and the Rails server-side adapters. So that was, I would say, pretty intentional. And it's crazy how many server-side adapters people have been able to put together. Somebody wrote a ColdFusion server-side adapter for Inertia. I had no idea ColdFusion was even a thing anymore; yeah, legit. There are node ones; there are Phoenix ones; if you can believe it, there's a WordPress one, which I'm not even totally sure even how that works. There is ASP.NET. CHRIS: [chuckles] JONATHAN: Like, there's a whole bunch of them. And it's actually despite of me, not because of me, that this has happened because I am yet to write a good here's how to build an Inertia server-side adapter in the language and framework of your choice guide. It's been on my to-do list. I have a bunch of things I want to do. So it's still something I want to write, but people what they're doing is they're just reverse engineering what we're doing in Laravel and Rails and these other adapters, and they're figuring out how to do it in their own server-side language and framework. So that's been really, really cool. On the flip side, on the client side, I'm starting to realize more and more that that's actually where the most important work for us as the maintainers of Inertia that we need to focus our efforts on because it's non-trivial to create these client-side adapters. And for us, we actually have four of them now because we have React and Svelte, but then we have Vue 2 and Vue 3. And they're different enough those frameworks that we actually had to create a separate adapter. So that's really where all our work is. The core of Inertia is actually ridiculously short, like the whole file, like the whole core Inertia adapter is 150 to 200 lines of code. And maybe it's a bit more than that, but it was that for a long time. It might be 300 or 400 now. It's very short. Even honestly, the client-side adapters are pretty short too. It's just that it's more difficult to make these client-side adapters because you get to learn all the intricacies of how each one of these frameworks handles their rendering. The core behavior that Inertia uses is the fact that you can dynamically swap components. So we dynamically swap page components when you visit from one page to the next and the details that come along with that. Anyway, so I've realized that moving forward, my job is going to be to make sure that the client-side adapters are awesome and then letting the community drive the server-side adapters a little bit more and providing some better guides on how to do that. But yeah, for now, it's like if we can get it working in Laravel and Rails, we should be able to get that functionality working in any server-side adapter. And because it's all again just based on HTTP, that's the language, that's the protocol like you say. That's the thing that matters between all these web frameworks, which they all, of course, support since they're web frameworks. CHRIS: I think you're not giving yourself nearly enough credit for the support that you've given to the server-side frameworks because you do actually have a page in the documentation called the protocol that does a great job of at least summarizing it at that HTTP level. But at the end of the day, again, like the job of someone implementing it is to then map that into their given language and framework of choice. But yeah, the documentation is impressive in just how much you put in there and how much care you obviously put into it and lots of nice, subtle details that are covered very well in that. So that again, if you read it, unlike me, then you get to know everything; eventually, I got there. I think I've read the whole thing now. But there's a lot there, and you cover all of the details. But actually looping back to a topic that you hinted at earlier, but this is something that I've been pressing up against lately is I absolutely love building web apps in Inertia, but there's often the need to bring in a mobile app, and we want native mobile for various reasons. I love the idea of progressive web apps, and I want to push that envelope as much as I can. But as an example, right now, iOS does not support push notifications to PWA. So if that's a key feature that we want, then we're dead in the water or if there are certain GPS things. There are a bunch of true platform native things that we just can't get. And so I'm now contemplating building out an app alongside my Inertia web stuff, but I want to build a React Native app, and I'm wondering, to a certain degree, does this invalidate some of my ideas? I know you hinted at this earlier, but I think I'm still convinced of the utility of Inertia on the web. But I think I need a different paradigm to build for a mobile app, and I'm trying to decide where that line falls. I'm also wondering if I can just get away with embedding a bunch of web views and reusing my web logic because, again, if I'm building all of this, I'm going to build it in a mobile responsive way. I don't want to rebuild the core page functionality of my app just to put it on mobile. Maybe mobile folks would tell me I'm wrong there, but I'm interested in maybe wrapping it and getting access to those platform features. But yeah, I'm interested in what your thoughts are there. JONATHAN: Well, embedding a web view within a native app has been proven to work just as DHH, obviously. But yeah, there are definitely people who disagree with that approach and feel like you should build a legitimately native app. Let's say that we're going to legitimately build a real native app. We want to have an Android and iOS app. So I actually ran into this myself for my own SaaS application, and I solved it by building a native app using React Native so React Native obviously being an abstraction on top of iOS and Android and all the tooling there, which is such an amazing platform. It was just a real joy to work with. And I don't even hardly work with React, and I was able to get a nice, high-quality native feeling app built relatively easily. But I had to come to grips with this very question because, like I've been saying all along like, “Inertia is great because you don't need to build an API. Yay, this is amazing. This is what you should do. Oh, crap. I need an API.” And I had those questions like, okay, well, does this invalidate everything that I've been doing? So I was thinking about it, and in the end, what I did is I just built a light API alongside my Inertia application. So what it is is I think I have seven endpoints, and they're just REST endpoints that are designed specifically for my native app. And this works honestly so well. And I think I've explained to you a little bit in a previous conversation, so I'll repeat myself a little bit here for the benefit of the listeners. The reason why I think it's completely legitimate to have Inertia and build your entire web app that way and then have a companion API alongside it in the same monolith app (let's be clear: it's in the same application. It's in my Laravel app, or it would be in your Rails application) is because it just extends a core principle for me of what Inertia is. And that core principle is a tight coupling between my data layer so my controllers, and my views. So if we take that thinking where we say, well, Inertia in an Inertia web app when we have an endpoint, we hit the controller, we load data from the database, we pass that very specific data to the view, which is Vue or React or Svelte and it renders it. And there's a very tight coupling between the two. And I treated my native app in the exact same way. I said, “Okay, I need an API because obviously, the native app on iOS and Android has to make an HTTP request to get this data somehow. But instead of trying to create this super generalized API that could theoretically be used for anything, I use the same principle that said I'm going to allow myself to create an API that has a really tight coupling between the screens in my native apps and the actual data that's coming from those API endpoints. And this worked out really, really, really well. I don't have to deal with a lot of the issues that you run into when trying to create a more generalized API because I could just say, “Hey, I have this calendar page, and I want that calendar page in my particular app. I want it to show people's birthdays, and I want it to show wedding anniversaries, and I want it to show custom events and these things that we have called schedule reminders.” So it's data from four different endpoints. I didn't try to say, “Well, I'm going to go and create now my event's endpoint, and my birthday's endpoint, and my anniversary's endpoint, and my schedule reminder's endpoint,” and now have all that work to do in my native app to okay, we'll hit all these different endpoints and merge it all together; it wasn't like that at all. I created a calendar endpoint that returned all the data that's needed for that screen. And I basically applied that thinking through my whole native app, and it was really a joy to work this way. So I think that approach works really well if you have an app that doesn't have complete feature parity with your web app. And I think if you had a native app that needed absolute feature parity between the native app and the web app, then my thinking might be a little bit different on this. But in my experience, so often, native apps have a vastly reduced subset of the features that the web app has in particular, even if not for the core functionality of the application but just for the administrative side of it. There's a whole bunch of stuff that you tend to have in a web app around administrative stuff that you literally never need. And I mean administrative both in terms of it's a multi-tenant style app, which most apps are so in terms of the user's administrative functionality and in terms of the system level, the software owner administration. If you build your whole web app to be built on top of an API, all that administrative stuff that really doesn't need to exist in both places, you now have to make it exist in your API because you've made that decision to build it that way. Whereas if you just stick with Inertia on the web and just build it using that classic monolith way where you get data from the controls and send it to your Blade views or in this situation, client-side page views, and then you just expose the stuff that you actually need natively, for me personally, it's worked out so well. And if I look at my own web app, the amount of controllers that I have for the whole web app, I have like 100; it's a very big app. And for my native app, I have about 10. So that was like, I'm so glad that I didn't have to create 100 of these in both places. And then some people will be like you might be thinking, well, now I have duplication. I have duplication in some of my API endpoints and my web endpoints, and that's true. I would say first that duplication isn't always a bad thing. I think more duplication in our web apps would actually probably lead -- I feel like we run away from duplication too quickly. I don't think duplication is as bad as software developers often think it is. But even then, if with the duplication you can't live with yourself, there are still ways to solve duplication. So Laravel, for instance, has this concept of they're called API resources, which is basically they're essentially transformers. You give it some models, and it transforms that model into some other states, some other design. So there's nothing stopping you. And I even did this myself within my server-side application within Laravel to have an API resource to have a transformer that's used by both my Inertia controller and my API controller in a couple of situations and for me, only when it makes sense. I'm not going to do it all the time because I found that most often, I wanted the data in a slightly different format in my native apps than I'd want it into my web app. So quite often, that didn't happen. But I'm just saying if you're scared of duplication, there are totally ways to solve it. And we can solve this in our existing frameworks. Laravel or Rails has ways to allow us to abstract some of that stuff and reuse it in multiple places. So, yeah, that's my long-winded answer to how I've approached doing the native apps sort of thing. I think that tight coupling between the data and the screen I think that's a really nice thing, and you just can build faster. And just like you can build faster with Inertia on the website, you can build fast [inaudible 43:19] CHRIS: Frankly, that answer makes a ton of sense one and two, makes me feel better about the path that I'm on because, again, I'm really desperate to cling to Inertia for the web side of things. So I love what you're saying. And again, it really resonates with me and how you're thinking about building. There's also I really appreciate a subtle common theme that I've seen in a bunch of things that you've said where you're like; let me poke at best practices a bit and see what falls out. What if we were to actually embrace the coupling between our data and our view layer? And it's like, actually some really nice things happen there. And actually, going back to an earlier project that you worked on, Tailwind CSS is one of those projects that when you first see it, you're like, well, that's obviously wrong. That's definitely an incorrect way to do things. But then you explore it, and you're like, well, I mean, I know there are trade-offs here, but actually, in my experience and I'm sure in your experience, Tailwind is absolutely fantastic. And the trade-offs you totally win in the long game, and it's maintainable, and it's understandable. And you can continue to develop on top of it in a way that I've never found with any other CSS framework. But again, at first glance, you're like, ooh, that's not right. That can't be right. JONATHAN: 100%, exactly. I think it's fun to push back and just experiment with different things. And for me, I think a lot of my decisions, too, come back to the fact that I'm running a SaaS application as one person, and I need to be able to move fast. I don't want to have two different servers and two different repos. I want to be able to build my applications as fast as I can, as a single developer, a single founder. And so I think the things that I push against and try and experiment with come out of me trying to find the simplest ways to maintain things. So Tailwind, that's really Adam's brainchild. I came along in the first six months or so; me and him built it. I was really just helping him flesh out his idea there, and that was super fun. But yeah, I had the exact same experience as you. Adam was telling me about this, and I'm like, that sounds pretty terrible. Like, I have CSS figured out already. And then it was like, oh man, this is amazing. Fun little fact, my SaaS app, me and him, were both working on web apps at that time. So my SaaS app was one of the first Tailwind applications ever because I and Adam were literally both building our own apps while building Tailwind CSS. But anyway, so yeah, it comes out of not me trying to be like, I know better than other people; it's not that at all. It's more just I'm trying to find a way to survive as a business and trying to build at the same time, not only survive but also I want to build awesome products. I don't want to build software that is just kind of okay. I love striving to make software that's just exceptional that delights people that works the way someone expects it to work. And I just think that there's so much broken software out there. There's a lot of bad software. And don't get me wrong, I've created a lot of bad software, too. But I really try to hold myself to a high standard. And really, for me, that comes down to not necessarily what some purist says that “This is how you need to do it.” It comes more down to like, okay, let me see the results. How fast does the webpage open? What's the performance? You mentioned my course earlier. I'm really, really interested in database performance and how to use databases more intelligently to deliver really fast web applications. And that matters to me because customers hate waiting. They hate it. And that was even part of what drove me to create Inertia because I hated this. I was working for a company, and we had built the right way where we have an API and the client separate And we went down that road. And that was a big team with 20 to 30 developers in the end. And I was just like -- I shouldn't say, “I was,” but we, in general, were not happy with what happened because just the way that the app was built and the way that single views were hitting the API. You could probably argue that this was like we were doing something wrong, but the paradigm didn't lend us to doing it right, in my opinion. So we'd have pages that were hitting the REST API with sometimes 10, 20 HTTP requests just to get the data. And you're dealing with all the loading states of all this stuff. And of course, there were probably better ways to design, but we were trying to ship a product there too. We were trying to get it out the door and make happy customers. And I didn't feel like that way was helping us. I think GraphQL, just as an aside, is a huge step forward where you can say, “Hey, here's all my data in an API, but I'm not going to hit the user's endpoint just to get back whatever you decide to give me.” I can be much more intentional about saying, “Hey, I want this data and then pull in this relationship for that data and this other piece of data.” And I think that's really, really cool. But I think the problem there again is you need to build that GraphQL API, and that's non-trivial, not to mention you probably have to figure out OAuth, which is pretty much always a game-stopper for me because if I never have to work with OAuth in my life [laughs] I'll be totally okay with that. I know it has its place, but yeah. CHRIS: There's a clear passion and a desire that you're describing there to just build good things and the belief that it can be done. And then, as someone who has really benefited from your work, I thank you for carrying that torch and for pushing the envelope. And like you said, having that high standard and holding yourself to it but then hopefully bringing the rest of us along, and I really appreciate that. But I think with that, that's probably a perfect time to wrap up. If folks want to follow more of what you are working on, where can they find what you're up to on the internet? JONATHAN: I'm on Twitter, the classic place to go for following someone in tech, so twitter.com/reinink, my last name. That's R-E-I-N-I-N-K. So that's where even if I have stuff shared elsewhere on the web, that's where it starts. CHRIS: Perfect. We'll include links to your Twitter as well as everything else that we've mentioned in this episode in the show notes. So folks that do want to keep up or investigate further listening to that other podcast episode that I mentioned will have all of that available. But with that, thank you so much for your time, and yeah, again, really appreciate you joining. JONATHAN: Thanks so much, Chris. Pleasure to be here. CHRIS: The show notes for this episode can be found at bikeshed.fm. If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. If you have any feedback for this or any of our other episodes, you can reach us at _bikeshed on Twitter. Or you can reach me @christoomey, or you can e-mail hosts@bikeshed.fm. Thanks so much for listening to The Bike Shed, and we'll see you next week. This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Real Talk JavaScript
Episode 104: Just What the Doc-ter Ordered with Laurie Barth

Real Talk JavaScript

Play Episode Listen Later Oct 8, 2020 48:38


Recording date: 2020-05-14John Papa @John_PapaWard Bell @WardBellDan Wahlin @DanWahlinCraig Shoemaker @craigshoemakerLaurie Barth @LaurieOnTechBrought to you byag-Grid Raygun Actionable error, crash and performance monitoring. Raygun gives you visibility into how users are really experiencing your software. Detect, diagnose and resolve issues with greater speed and accuracy.Resources:GatsbyAngular DocsMarcy SuttonNode.jsGatsby DocsGatsby CloudPeacock docsDocumentation templateStripe docsMDN docsDrink a v8Vue RouterYarn docs2alityAlligatorV8Lauries course on Vue Router at EggheadUnifiHD wifi networkingTimejumps01:13 Guest introduction02:31 What do you do at Gatsby?04:35 Organizing principles of docs12:02 Sponsor: Ag Grid13:06 Do people know the terms in a doc?21:48 How can people learn to write better docs?29:55 Sponsor: Raygun30:27 What's the first thing you should do with docs?40:50 How do you do SEO for docs?46:08 Final thoughtsPodcast editing on this episode done by Chris Enns of Lemon Productions.

Enjoy the Vue
Episode 12: Vue Router with Eduardo San Martin Morote

Enjoy the Vue

Play Episode Listen Later Apr 13, 2020 63:26


Sponsored By: Show Notes About our guest: Eduardo San Martin Morote - Twitter @posva (https://twitter.com/posva?lang=en) - Website (https://esm.dev/) - Github (https://github.com/sponsors/posva) [00:01:07] Chris asks Eduardo to talk about are some recent changes with Vue Router in the last six months or a year with that may be really interesting to people. [00:04:08] Chris wants to know for the premise-based navigation if you’re going to use a profile page for someone entering a user name and you take them to this new route that checks to see if that user name exists, could you add a catch there that handles that gracefully and what are some ways you would use that in an app? [00:09:31] Chris asks Eduardo what are some the main problems people have with Vue Router? Ari chimes in with an issue she’s had. [00:15:51] Eduardo answers the question if you’re building an app with that kind of interface how would you know which strategy would be better for you? Also, he tells us the “hackiest” things he’s ever seen with someone using Vue Router. [00:26:16] Chris talks about his lazy load Vue utility that he’s defined, to get around the advanced async component definition and it doesn’t work with Vue Router, and he has a messy hack that he doesn’t like and doesn’t work as well as he wants it to. He wants to know with the next version of Vue Router will we get that working? Eduardo answers this… [00:30:31] Tessa wants Eduardo to go into how URL encoding is like state machines. [00:35:21] Chris is curious if Eduardo was starting a new Vue application what would his Vue Router configuration look like? Also, Eduardo explains if he defines a scroll behavior function? [00:46:37] Tessa asks Eduardo if he woke up tomorrow in a world without Vue Router, like everything else is the same, but the router was never created, what would he do differently or what would he keep the same? [00:48:59] Tessa is curious and asks Eduardo if there are any old choices sticking around that are hampering new development that he wishes he could go back and change but maybe he can’t for some reason or another? [00:52:12] Eduardo talks a little more about what it’s like to be the core maintainer of Vue Router and what areas he needs the most help for people interested in contributing. Picks of the week: [00:55:17 Chris’s has two picks: A game called “Disco Elysium” (https://store.steampowered.com/app/632470/Disco_Elysium/) and a show called, “Dollface” (https://www.hulu.com/series/5e0e449e-6bc7-4b29-8255-bc5a5f5a9f0d) on Hulu. [00:56:20] Ari’s has two picks: A game called, “Animal Crossing: New Horizons” on Nintendo Switch (https://www.nintendo.com/games/detail/animal-crossing-new-horizons-switch/). Her other pick is two songs by the group, Explosions In The Sky, called, “The Birth and Death of the Day” (https://open.spotify.com/album/1hXFXoYkWp7Jbzc2nwhvub?highlight=spotify:track:5yYvVixfmnL5BrcJVsscrT) and “The Wilderness” (https://open.spotify.com/album/79X3DX8IqI3jZXQvsrFiDV). [00:57:24] Eduardo’s has three picks: A game called, “Resident Evil 2” (https://www.residentevil2.com/) and a Korean show called “Kingdom” (https://www.netflix.com/title/80180171?source=35) and “The Platform” (https://www.netflix.com/title/81128579?source=35) on Netflix . [01:01:26] Tessa’s has two picks: She is going with Ari’s recommendation of the game, “Animal Crossing: New Horizons” (https://www.nintendo.com/games/detail/animal-crossing-new-horizons-switch/)” and a retro pick for her which is a book called, “The Art of Gathering: How We Meet and Why It Matters” (https://www.amazon.com/Art-Gathering-How-Meet-Matters/dp/1594634920/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1585603268&sr=8-1). Other resources mentioned - Vue Router (https://router.vuejs.org/) - Nuxt-style routing in regular Vue apps (https://github.com/egoist/routes-generator) - Vue Enterprise Boilerplate routing docs (https://github.com/chrisvfritz/vue-enterprise-boilerplate/blob/master/docs/routing.md) - Alternative routing strategies (https://github.com/chrisvfritz/vue-2.0-simple-routing-example) - Eduardo's GitHub Sponsors - Vue Land Discord vue.land (http://vue.land)/chat.vuejs.org (http://chat.vuejs.org/) Sponsor: Linode (https://promo.linode.com/vue/) Special Guest: Eduardo San Martin Morote.

Views on Vue
VoV 079: Why Vue.js is the Best Framework Ever with Gwendolyn Faraday

Views on Vue

Play Episode Listen Later Sep 17, 2019 49:20


Episode Summary   In this week’s episode of Views one Vue, the panel interviews Vue’s biggest fan, Gwendolyn Faraday. Gwen shares her story of getting into vue. How she was a little reluctant at first but ended up being so impressed with everything Vue has to offer. Gwen is a Vue educator and loves how easy it is to teach Vue, with its great docs and human-focused design.   Gwen explains why she is such a big fan of Vue. It is easy to use. It is intuitive to use. The documentation is wonderfully written. She loves that Vuex and Vue Router are actual Vue products that work seamlessly with the framework, making a cohesive ecosystem. She declares that Vue is not just for beginners, it is a production-ready, battle-tested language with a human-driven design.     The panel asks Gwen what makes learning and teaching Vue easier. Gwen explains that Redux is complex and hard to understand while Vuex is much simpler to understand. She tells the panel that Vue is much easier to learn because it has fewer complex concepts and fewer layers of abstraction. This makes it easier for new developers to get started coding sooner.    Gwen considers some of the common problems she experiences while teaching programming languages, not just Vue. For Gwen it can be hard to go slow and hit each step, not skipping any small step or concept. Explaining, Gwen tells the panel it is hard to remember what it was like not to know anything or remembering what was hard to grasp at first. Vocabulary and programming jargon is another thing Gwen share that can be hard to teach. This inspires the panel to consider how often developers get drawn into their own world and language, not remembering that others might not understand what they are talking about.    Chris Fritz, who has a background in education, wonders how Gwen got started teaching. Gwen explains that teaching is just a natural way for her to learn. When she wants to learn something she started meetups. Her meetups help her learn and grow. The panel considers that concept and thinks of their experiences learning through teaching.    The panel brings up Gwen’s self-taught coding education. Ari Clark wonders how being self-taught affected her teaching abilities. Gwen considers this, then gives some of her thoughts on the different ways someone can learn to code. She gives a few recommendations for learning code and encourages everyone to figure out if they can or want to actually do the job before putting in too much time and resources into learning.    Gwen, shy by nature, explains how she goes about getting to know people at meetups or in the community.  She explains how she likes to give a talk as a way of introducing herself to everyone at once. The panel thinks this is a genius plan for shy people. They explain that people are often shy and awkward because their role is undefined. By speaking or running a meetup they are in control, they know what they are supposed to be doing and have a defined role.   The next topic the panel discusses is Gwen’s meetups. She runs two meetups, the first is a group for beginners and intermediate. It has grown to over 1100 members. Also, she recently started a blockchain meet up. Gwen admits that she is no blockchain expert and loves that hosting this meetup she is pushed to learn. The panel is impressed that she admits that she is not an expert and consider how fearful people can be of admitting that they don’t know everything.    The panel asks Gwen questions about running her meetups. She explains how it can be a struggle to find speakers. Though it is easier to find speakers for her beginners' group because people are always willing to help beginners. Blockchain being more niche has more of a study group feel, as the number of members is lower and they are all sort of learning together.    The panel asks Gwen about her talk in Australia about why Vue is growing so fast. In her talk she describes Vue as the gold standard of the JavaScript world and that all other frameworks need to catch up. In her talk she points out her frustrations when using other frameworks and how Vue takes all the good elements from other frameworks. She admits she wanted to call her talk “Why Vue.js is the Best Framework Ever”.    Confident Growth, the title of a podcast episode about Gwen is discussed. Gwen explains that that podcast episode was about her journey and the producers came up with the name Confident Growth after the interview. The panel then asks Gwen about imposter syndrome and the advice she would give for those who are struggling with it. Gwen explains that we all experience the same struggles and we need to support and encourage each other.    Gwen has a great approach to things that make her uncomfortable and an addiction to learning. She explains she hates not knowing how to do something. The panel considers how Gwen’s homeschool background inspired this love of learning. Chris’s activist side comes out as he touches on his frustrations with how education works in this country.    Gwen has a few things to say to those programmers who feel that Vue too simple and only for beginners. She gives many examples of how Vue can be used to build simple yet advanced apps. The panel considers the mindset that something that is simple or easy to use and understand can’t be a powerful tool.    The episode ends with Gwen telling listeners to look for her at a few upcoming conferences around the world. She also has a book coming out about teaching yourself how to code. Panelists Ben Hong Chris Fritz Ari Clark Guest Gwendolyn Faraday Sponsors   My JavaScript Story Sentry– use the code “devchat” for two months free on Sentry’s small plan Adventures in DevOps CacheFly Links   Why Vue.js is Taking Over the Front-end World - Gwendolyn Faraday Episode 347 | Gwen Faraday - Confident Growth https://www.meetup.com/Free-Code-Camp-Indy/members/188721354/ https://www.meetup.com/Indianapolis-Blockchain-Developers/ https://www.meetup.com/vuejsindy/ GOTO Copenhagen 2019 https://www.buildstuff.lt/ https://ndc-london.com/ https://twitter.com/gwen_faraday?lang=en http://gwenfaraday.com/ https://github.com/gwenf https://www.facebook.com/ViewsonVue https://twitter.com/viewsonvue Picks Ben Hong: Screenflow Chris Fritz: Elite Dangerous https://www.alfiekohn.org/ Noam Chomsky- Manufacturing consent (1992) Exhalation: Stories Ari Clark: Glow Gwendolyn Faraday: https://www.freecodecamp.org/ Saga

Devchat.tv Master Feed
VoV 079: Why Vue.js is the Best Framework Ever with Gwendolyn Faraday

Devchat.tv Master Feed

Play Episode Listen Later Sep 17, 2019 49:20


Episode Summary   In this week’s episode of Views one Vue, the panel interviews Vue’s biggest fan, Gwendolyn Faraday. Gwen shares her story of getting into vue. How she was a little reluctant at first but ended up being so impressed with everything Vue has to offer. Gwen is a Vue educator and loves how easy it is to teach Vue, with its great docs and human-focused design.   Gwen explains why she is such a big fan of Vue. It is easy to use. It is intuitive to use. The documentation is wonderfully written. She loves that Vuex and Vue Router are actual Vue products that work seamlessly with the framework, making a cohesive ecosystem. She declares that Vue is not just for beginners, it is a production-ready, battle-tested language with a human-driven design.     The panel asks Gwen what makes learning and teaching Vue easier. Gwen explains that Redux is complex and hard to understand while Vuex is much simpler to understand. She tells the panel that Vue is much easier to learn because it has fewer complex concepts and fewer layers of abstraction. This makes it easier for new developers to get started coding sooner.    Gwen considers some of the common problems she experiences while teaching programming languages, not just Vue. For Gwen it can be hard to go slow and hit each step, not skipping any small step or concept. Explaining, Gwen tells the panel it is hard to remember what it was like not to know anything or remembering what was hard to grasp at first. Vocabulary and programming jargon is another thing Gwen share that can be hard to teach. This inspires the panel to consider how often developers get drawn into their own world and language, not remembering that others might not understand what they are talking about.    Chris Fritz, who has a background in education, wonders how Gwen got started teaching. Gwen explains that teaching is just a natural way for her to learn. When she wants to learn something she started meetups. Her meetups help her learn and grow. The panel considers that concept and thinks of their experiences learning through teaching.    The panel brings up Gwen’s self-taught coding education. Ari Clark wonders how being self-taught affected her teaching abilities. Gwen considers this, then gives some of her thoughts on the different ways someone can learn to code. She gives a few recommendations for learning code and encourages everyone to figure out if they can or want to actually do the job before putting in too much time and resources into learning.    Gwen, shy by nature, explains how she goes about getting to know people at meetups or in the community.  She explains how she likes to give a talk as a way of introducing herself to everyone at once. The panel thinks this is a genius plan for shy people. They explain that people are often shy and awkward because their role is undefined. By speaking or running a meetup they are in control, they know what they are supposed to be doing and have a defined role.   The next topic the panel discusses is Gwen’s meetups. She runs two meetups, the first is a group for beginners and intermediate. It has grown to over 1100 members. Also, she recently started a blockchain meet up. Gwen admits that she is no blockchain expert and loves that hosting this meetup she is pushed to learn. The panel is impressed that she admits that she is not an expert and consider how fearful people can be of admitting that they don’t know everything.    The panel asks Gwen questions about running her meetups. She explains how it can be a struggle to find speakers. Though it is easier to find speakers for her beginners' group because people are always willing to help beginners. Blockchain being more niche has more of a study group feel, as the number of members is lower and they are all sort of learning together.    The panel asks Gwen about her talk in Australia about why Vue is growing so fast. In her talk she describes Vue as the gold standard of the JavaScript world and that all other frameworks need to catch up. In her talk she points out her frustrations when using other frameworks and how Vue takes all the good elements from other frameworks. She admits she wanted to call her talk “Why Vue.js is the Best Framework Ever”.    Confident Growth, the title of a podcast episode about Gwen is discussed. Gwen explains that that podcast episode was about her journey and the producers came up with the name Confident Growth after the interview. The panel then asks Gwen about imposter syndrome and the advice she would give for those who are struggling with it. Gwen explains that we all experience the same struggles and we need to support and encourage each other.    Gwen has a great approach to things that make her uncomfortable and an addiction to learning. She explains she hates not knowing how to do something. The panel considers how Gwen’s homeschool background inspired this love of learning. Chris’s activist side comes out as he touches on his frustrations with how education works in this country.    Gwen has a few things to say to those programmers who feel that Vue too simple and only for beginners. She gives many examples of how Vue can be used to build simple yet advanced apps. The panel considers the mindset that something that is simple or easy to use and understand can’t be a powerful tool.    The episode ends with Gwen telling listeners to look for her at a few upcoming conferences around the world. She also has a book coming out about teaching yourself how to code. Panelists Ben Hong Chris Fritz Ari Clark Guest Gwendolyn Faraday Sponsors   My JavaScript Story Sentry– use the code “devchat” for two months free on Sentry’s small plan Adventures in DevOps CacheFly Links   Why Vue.js is Taking Over the Front-end World - Gwendolyn Faraday Episode 347 | Gwen Faraday - Confident Growth https://www.meetup.com/Free-Code-Camp-Indy/members/188721354/ https://www.meetup.com/Indianapolis-Blockchain-Developers/ https://www.meetup.com/vuejsindy/ GOTO Copenhagen 2019 https://www.buildstuff.lt/ https://ndc-london.com/ https://twitter.com/gwen_faraday?lang=en http://gwenfaraday.com/ https://github.com/gwenf https://www.facebook.com/ViewsonVue https://twitter.com/viewsonvue Picks Ben Hong: Screenflow Chris Fritz: Elite Dangerous https://www.alfiekohn.org/ Noam Chomsky- Manufacturing consent (1992) Exhalation: Stories Ari Clark: Glow Gwendolyn Faraday: https://www.freecodecamp.org/ Saga

The Official Vue News
Episode 145: #145 - June 11, 2019

The Official Vue News

Play Episode Listen Later Jun 11, 2019 5:17


Gregg and Adam discuss Nuxt from terminal to browser, triggering events from Vue Router's router-view, the Intersection Observer browser API, how to build decoupled Vue applications with hooks, and how to build a group chat app with Vue.

The Official Vue News
Episode 140: #140 - May 7, 2019

The Official Vue News

Play Episode Listen Later May 7, 2019 5:39


Adam and Ben discuss v-tooltip 3.0 alpha, Apollo state management in Vue application, structuring Vuex modules for relationships, speed and flexibility, using Vue Router page transitions, Vuex ORM, the IoC container pattern, and more. Special Guest: Ben Hong.

apollo ioc vue vue router
HTML All The Things - Web Development, Web Design, Small Business
Developing with Vue.js, Node.js, and MongoDB

HTML All The Things - Web Development, Web Design, Small Business

Play Episode Listen Later Nov 14, 2018 70:19


We've been hard at work, learning a new development stack on which the HTML All The Things website is built. Note: Matt is on vacation for 1.5 weeks, this episode has been pre-recorded before his departure, some things that were discussed may have a different status (hopefully complete) upon the release of the episode. Segment 1 - VueJS Frontend Development Due to the nature of VueJS, we spun up an entirely new development environment Switching from Notepad++ to Visual Studio Code w/ the Vetur plugin Some of the most valuable/used parts of VueJS that we used include: Components - are like small pieces that makeup the website, placed in separate files and used over and over again, can be imported into each other (component inside a component) Scoped Stylesheets - limit the styles you're applying to the file you're writing them in, we limited many styles to specific components, allows you to use the same classnames and ids with completely different properties Dynamic data was the most challenging part of using VueJS, not from a technical perspective, but more so from a procedural standpoint - not used to having them as apart of my workflow Vuex, Vue Router, Axios Vuex is a state management solution in vue that allows all components to share data between each other We use it for storing our loggedIn status for our editing content Vue router is used for handling any routes so that we can navigate around our site Segment 2 - Nodejs and MongoDB Backend Development Nodejs Used as our server to serve webpage content from the Mongo Database and store content in the mongo database The server has be handle many calls to it that request things like: Get all content Get content of a specific type Add content of a specific type Delete content Authentication These are standard server requests but still took some time to setup as we've never hooked in vue.js into Node, usually use the built in templating engines MongoDB A alternative to sql that stores objects in json blocks Has great hookins into Nodejs using the Mongoose package Used to store our content block data and  admin user account for editing the site Had to implement mongo admin and database users so that even if our site is hacked they can't delete or modify the entire mongo database Segment 3 - Digital Ocean and Docker Deployment Digital Ocean provides a vps with an already installed Docker instance. Docker is a way to create small virualizable containers for each technology in your stack In our case we used docker to create 3 containers: Nginx - serve static files and proxy routes to Nodejs server Nodejs - run our server infrastructure MongoDB - runs our mondodb server that communicates with Nodejs Had to learn how to create a docker compose file which is a configuration file for building your containers together and letting them know how to communicate Everything is launched and built through a SSH into your digital ocean server. You have to be familiar with using a Command Line Interface (CLI) Web News - Wrapping it Up In this Web News we had a discussion regarding our current status (at the time of recording) in the development of the HTML All The Things website, as well as what to complete for deployment.

Views on Vue
VoV 034: Mike Hartington & Michael Tintiuc : "Ionic and Vue"

Views on Vue

Play Episode Listen Later Oct 23, 2018 74:38


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

Devchat.tv Master Feed
VoV 034: Mike Hartington & Michael Tintiuc : "Ionic and Vue"

Devchat.tv Master Feed

Play Episode Listen Later Oct 23, 2018 74:38


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

The Official Vue News
#113 - October 2, 2018

The Official Vue News

Play Episode Listen Later Oct 2, 2018 6:56


Vue 3.0 features, NativeScript Vue 2.0, DevTools beta, intro to Vuex, Twitter profiles, Vue Router missing manual, building Vue Components, Vue w/TypeScript, choosing a front-end UI framework, UIkit w/VueJS.

Views on Vue
VoV 018: State Management with Vue.js with Hassan Djirdeh

Views on Vue

Play Episode Listen Later Jul 3, 2018 70:18


Panel: Charles Max Wood Chris Fritz Erik Hanchett Divya Sasidharan Special Guests: Hassan Djirdeh In this episode of Views on Vue, the panelists discuss state management with Vue.js with Hassan Djirdeh. Hassan is a front-end engineer developer based out of Toronto, Canada and works for the ecommerce company Shopify as his full-time job. In his free-time he does anything and everything related to Vue and has also recently helped publish a book called Fullstack Vue. They talk about Vue CLI 3.0, state management patterns, his talk The Importance of State Management in Vue, and more! In particular, we dive pretty deep on: Hassan intro Vue Recently started using the Vue CLI 3.0 How is Vue CLI 3.0 different from 2.0? More obvious to understand what people need for their application Vuex and Vue Router Great way to get things started What if you’re using a configuration from Vue CLI 2.0? Webpack or Browserify Making things easier and better for new Vue developers Further configuring your projects Have you found anything you haven’t been able to configure with Vue CLI 3? Git integration Vuex Modules Linting Can you create your own templates with the CLI? How much should the CLI tool walk the developer through the process? Integrating ESLint into a project Runtime errors Pre-commit hook The Importance of State Management in Vue – Hassan’s Talk And much, much more! Links: Shopify Fullstack Vue Vue CLI 3.0 Vue Vuex Vue Router Webpack Browserify Vuex Modules The Importance of State Management in Vue – Hassan’s Talk ESLint Hassan’s Medium Hassan’s GitHub @djirdehh hassandjirdeh.com Sponsors: Kendo UI FreshBooks Picks: Charles GDPR Solo Movie   Chris Sarah Drasner Repo - loldash Jean-Claude Van Johnson Dark Primer Erik Wallabyjs.com Divya Gatsby.js SmooshGate blog Hassan Avengers: Infinity War Lambda School

Devchat.tv Master Feed
VoV 018: State Management with Vue.js with Hassan Djirdeh

Devchat.tv Master Feed

Play Episode Listen Later Jul 3, 2018 70:18


Panel: Charles Max Wood Chris Fritz Erik Hanchett Divya Sasidharan Special Guests: Hassan Djirdeh In this episode of Views on Vue, the panelists discuss state management with Vue.js with Hassan Djirdeh. Hassan is a front-end engineer developer based out of Toronto, Canada and works for the ecommerce company Shopify as his full-time job. In his free-time he does anything and everything related to Vue and has also recently helped publish a book called Fullstack Vue. They talk about Vue CLI 3.0, state management patterns, his talk The Importance of State Management in Vue, and more! In particular, we dive pretty deep on: Hassan intro Vue Recently started using the Vue CLI 3.0 How is Vue CLI 3.0 different from 2.0? More obvious to understand what people need for their application Vuex and Vue Router Great way to get things started What if you’re using a configuration from Vue CLI 2.0? Webpack or Browserify Making things easier and better for new Vue developers Further configuring your projects Have you found anything you haven’t been able to configure with Vue CLI 3? Git integration Vuex Modules Linting Can you create your own templates with the CLI? How much should the CLI tool walk the developer through the process? Integrating ESLint into a project Runtime errors Pre-commit hook The Importance of State Management in Vue – Hassan’s Talk And much, much more! Links: Shopify Fullstack Vue Vue CLI 3.0 Vue Vuex Vue Router Webpack Browserify Vuex Modules The Importance of State Management in Vue – Hassan’s Talk ESLint Hassan’s Medium Hassan’s GitHub @djirdehh hassandjirdeh.com Sponsors: Kendo UI FreshBooks Picks: Charles GDPR Solo Movie   Chris Sarah Drasner Repo - loldash Jean-Claude Van Johnson Dark Primer Erik Wallabyjs.com Divya Gatsby.js SmooshGate blog Hassan Avengers: Infinity War Lambda School

Views on Vue
VoV 006: Creating a Vue Plugin with Ramsay Lanier

Views on Vue

Play Episode Listen Later Apr 10, 2018 52:13


Panel: Charles Max Wood Cher Stewart Chris Fritz Special Guests: Ramsay Lanier In this episode of Views on Vue, the panelists discuss creating a Vue plugin with Ramsay Lanier. Ramsay is a front-end developer for Novetta and spends most of his time turning fancy data into cool visualizations. He originally got his start in programming with React and is a new convert over to Vue. He talks about why he decided to create his Vue plugin and what steps he took to create it. This episode is great for people wanting to learn more about plugins and when they can best be used. In particular, we dive pretty deep on: Ramsay intro Recent Vue convert Got his start with React Side project: WordExpress What is a Vue plugin? How do you get started creating a Vue plugin? Apollo GraphQL Parsing How did you know you needed a plugin? Don’t have to be an expert in Vue to create a plugin What was the most difficult part of building it? Getting started was the hardest part Vue Plugins Documentation Likes the Vue plugin implementation over React’s Wanted something convenient Shortcodes are what can be expanded upon Vue.use What does Vue.use accept? Instance vs Global methods? Any plugins that you really liked? Vue Router Did anything surprise you when looking up plugins? Vuex Plugin tests And much, much more! Links: Novetta Vue React WordExpress Apollo GraphQL Vue Plugins Documentation Vue Router plugin Vuex Ramsay’s GitHub RamsayLanier.com @Rmmsy Picks: Charles Bose SoundLink Headphones Cher Vue'do Sneaky Pete Chris Stories of Your Life and Others by Ted Chiang RimWorld New Component Docs Vim Vixen Vimium Ramsay Atlanta Monster Today, Explained Amazon Originals Sneaky Pete Electric Dreams Sea of Theives

Devchat.tv Master Feed
VoV 006: Creating a Vue Plugin with Ramsay Lanier

Devchat.tv Master Feed

Play Episode Listen Later Apr 10, 2018 52:13


Panel: Charles Max Wood Cher Stewart Chris Fritz Special Guests: Ramsay Lanier In this episode of Views on Vue, the panelists discuss creating a Vue plugin with Ramsay Lanier. Ramsay is a front-end developer for Novetta and spends most of his time turning fancy data into cool visualizations. He originally got his start in programming with React and is a new convert over to Vue. He talks about why he decided to create his Vue plugin and what steps he took to create it. This episode is great for people wanting to learn more about plugins and when they can best be used. In particular, we dive pretty deep on: Ramsay intro Recent Vue convert Got his start with React Side project: WordExpress What is a Vue plugin? How do you get started creating a Vue plugin? Apollo GraphQL Parsing How did you know you needed a plugin? Don’t have to be an expert in Vue to create a plugin What was the most difficult part of building it? Getting started was the hardest part Vue Plugins Documentation Likes the Vue plugin implementation over React’s Wanted something convenient Shortcodes are what can be expanded upon Vue.use What does Vue.use accept? Instance vs Global methods? Any plugins that you really liked? Vue Router Did anything surprise you when looking up plugins? Vuex Plugin tests And much, much more! Links: Novetta Vue React WordExpress Apollo GraphQL Vue Plugins Documentation Vue Router plugin Vuex Ramsay’s GitHub RamsayLanier.com @Rmmsy Picks: Charles Bose SoundLink Headphones Cher Vue'do Sneaky Pete Chris Stories of Your Life and Others by Ted Chiang RimWorld New Component Docs Vim Vixen Vimium Ramsay Atlanta Monster Today, Explained Amazon Originals Sneaky Pete Electric Dreams Sea of Theives

The Laravel Podcast
OG Reunion #1

The Laravel Podcast

Play Episode Listen Later Apr 6, 2018 48:31


The Season 2 crew reunites. Laracon Venue: The Museum of Science and Industry Evan You Ryan Holiday / Conspiracy Jocelyn K. Glei / Hurry Slowly / Unsubscribe Marvel.app Zeplin.io Laravel: Up and Running A Brief Introduction to Progressive Web Apps, or PWAs Marcus Aurelius book - Meditations The Daily Stoic AWS Lambda Esther Perel - sample TED talk: The secret to desire in a long-term relationship The Imposter's Handbook The Millionaire Next Door The Simple Path to Wealth Editing sponsored by Larajobs Transcription sponsored by GoTranscript.com [music] Matt Stauffer: Welcome back to a special edition of the Laravel Podcast season three. It's season three but it feels like season two. Stay tuned. [music] Matt Stauffer: Welcome back to a special edition of the Laravel Podcast. This is season three but I wouldn't hold it against you if you got surprised because I have two guests with me. Not only do I have two guests but I have the OG two guests. Can you guys say hello to the people? Jeffrey Way: Hey, everybody. I'm Jeffrey Way. Good to be back. Taylor Otwell: I'm Taylor Otwell. Matt Stauffer: You may have heard of Taylor. We got Jeffrey Way, the creator of Laracasts and bringer of many of us to Laravel and then Taylor Otwell, OG Laravel Podcast, OG Laravel. We figured it's time for a little bit of a breather in season three with all these episodes and just catch up and see how the crew is doing and catch up on things. Stuff we've got on our plate for today is definitely talking about how Laracon is looking for this year, what's going on with the development of Laravel and Laracasts and everything like that. I figure the easiest and most concrete thing for us to talk about is Laracon. What is going on? How is ticket sales? How is speaker lineups? How's the venue looking? How's Chicago looking? How's everything going for Laracon right now. Taylor Otwell: I think it's going pretty well. The venue is the Museum of Science and Industry in Chicago which is a really large museum. On the South side of Chicago. We'll be in their auditorium and the ticket sales are going really good. We already sold out. That's about 850 attendees, about 50 of those attendees are going to be speakers and sponsors and then around 800 of them are going to be actual ticket purchasers from the community. This will definitely be the biggest US Laracon. It'll probably be the biggest Laracon yet so far. Although Laracon EU is usually a little bigger, so I wouldn't be surprised if they sold more tickets this year. I'm pretty excited about it. All the speakers are pretty much lined up. Some of the big name speakers that people may have heard of so far. Of course, I'll be there. Creator of Laravel, Evan You creator of Vue will be there. Uncle Bob Martin who's famous for writing some very popular programming books and just being a programming teacher will be there. Ryan Holiday, the author of several books that people may have heard of. His latest book is called Conspiracy but he also wrote The Daily Stoic, Perennial Seller, Obstacle is the Way, Ego is the Enemy. Some pretty popular books actually. Who else? Adam Wathan will be there. Several other community members will be there. I'm really looking forward to it. I think it's going to be a great talk. Right now, what I'm working on is just ironing out food, drinks, all those extra things you have to do for a conference. T-shirts, about to order those probably. Sponsors, we'll have 11 sponsor tables at the venue. We have quite a few sponsors again this year. It's going to be a packed house. Jeffrey Way: I always wonder how you keep track of everything. Matt Stauffer: Yes, me too. Jeffrey Way: Do you ever get close to the conference and think, "Oh, my god. I didn't even do that yet?" Taylor Otwell: One way I-- Matt Stauffer: Do you have a checklist? Taylor Otwell: One way I keep track is I have a spreadsheet from last year with every expense. That actually serves as a checklist. Like, "Hey, badges are on here as an expense. I should probably order those for this year." I just duplicate that every year and then I type in the new expenses and it also serves as a projection for profit and loss on the whole conference. It serves a dual purpose as a checklist and as a profit estimator for how the conference is looking to make sure I'm not way overspending. Especially, on speakers this year. We've spent probably $50,000 on speakers this year just because we several speakers that have a speaking fee and then we try to pay every speaker at least a few thousand dollars to make sure they're not just losing money coming to the conference which can happen. I don't know if you've spoken at conferences. As a listener, you may know that often it's a breakeven or maybe even a losing affair. Trying to make it somewhat worthwhile. Jeffrey Way: I've been to some where you don't get anything and that's just how it is. Look, you can come and speak but we're not giving you a penny. Taylor Otwell: [chuckles] I feel like I usually lose money. Matt Stauffer: That's most of them. Jeffrey Way: I used to go to a lot of WordPress conferences. What were they called back then? WordCamp? Taylor Otwell: Yes, WordCamp. Jeffrey Way: Maybe. With them is like they just don't have the money. They don't have the budget. You're doing that all on your own dime, if you want to go. Matt Stauffer: I'm looking through this list of speakers. There's quite a few people who I don't know of, but I've heard you guys talk about them. Jocelyn Glei, maybe? Ryan Holiday, you've mentioned him being an author. Then, there's one other person who I didn't know. Who do I not know? I guess it's just them. I think everyone else here is either, Jason Freed or Bob Martin or Evan Yu or people who are pretty reputable members of the Laravel community. Although we do have a few first-time speakers, TJ Miller, Caleb Porzio, Colin DiCarlo are all speakers-- Taylor Otwell: Collin DiCarlo is not. Matt Stauffer: He's not-- Geez, I thought he was-- Taylor Otwell: No. I think he's a 2016 Louisville speaker. Matt Stauffer: That was the year I was at home with the baby, so my bad. Caleb and TJ. Jocelyn, you mentioned Ryan. He's written a couple books. I need to go check those out. Can you tell us a little bit about Jocelyn? Taylor Otwell: Jocelyn runs a podcast called Hurry Slowly where she talks about work, productivity, burn-out, stuff like that. She's actually interviewed Jason Freed on the podcast. She also wrote a book called Unsubscribe which is on Amazon. You can check out. It's just about the overabundance of notifications and busy-ness that's prevalent in our tech world especially. I think she's going to talk about similar topics at the conference. I entirely forgot Jason Freed would be there. That's kind of a big deal. [laughter] I've been so busy with other stuff. Matt Stauffer: Let me ask you. Do you guys feel overwhelmed sometimes by all of the work you have to do? Do you feel that you can manage it fairly well day-to-day? [crosstalk] Jeffrey Way: I'm often overwhelmed by the work on my plate. My life is a constant battle of trying to figure out whether I'm overwhelmed because I don't have everything settled on my side or whether it's because we need to readjust the company a little bit. There's always a the, "Oh, Dave quit and he used to do all this high-level administration stuff so I took on all of his jobs for a while. We need to hire a new Dave." That was the thing for the longest time. "Oh, we've got four more developers than we did a year ago so there's a lot more management" or "This one client is requiring all these needs." Sometimes, it's process stuff. Sometimes, it's just I need to stop screwing around in my free time and actually, work through my email backlog, or I need to figure out how to handle my tasks better. Right now, I'm actually doing really good. It's because I've spent the last couple of weeks really putting in a concerted effort. We also have hired someone who is not joining us until mid-May, who's going to take probably a third of my job off my plate. It's funny because I was actually-- That whole thing, there was this guy, Dave, who managed all this. A lot of those responsibilities are going to be back off my plate soon, so I'm getting to that point. I usually can tell, "Do I finish my day with an empty email inbox and a task list with a couple items left on it and a clean desk? Do I finish my day with 70 emails still in my inbox, 20 things in my task list, a big pile of paper on my desk." Usually, those are the signs for me of, "Am I struggling to keep up, or am I actually on top of my life?" Matt Stauffer: What about you, Taylor? Taylor Otwell: I was just thinking I feel less overwhelmed by the work, and more overwhelmed by the expectations of everything. Because I don't really have that much I have to work on every single day, like Forge is going to run so I just have to answer the emails. It's a little different, I guess, because you probably want to crank out videos. I don't know what your schedule is and then, Matt probably has his daily tasks. For me, it's this expectation of somewhere out in the future, I have to do something impressive again. Matt Stauffer: Do something amazing. Taylor Otwell: I have to get up on stage and speak about it and it has to not fail. That's the pressure I feel really-- weighs on me every day, basically, because at Laracon, there has to be something cool to unveil, which, nobody panic, we are working on something but things can come up, or problems can arise. It could be buggy, it may not be finished in time, and that stuff's really overwhelming, more so than just the daily routine. Like Laracon itself could-- There's expectations there for it not to suck, for people to have a good time, for the food not to be terrible, for the speakers to do well, all that stuff is high expectation, too. Matt Stauffer: Had you guys seen the grid of urgent versus important? I'm trying to remember who it is, but somebody from a long time ago, basically, drew a grid and any given thing that's on your plate as a pressure should be doing can be urgent or not urgent, and important or not important. The really interesting thing is that you can put all the things that are pressing on you into that grid and figure out which of the quadrants they find themselves in. The things we're mostly like to do that are most wasteful is the urgent and not important. The things we're least likely to do that sounds like, really, what's on your plate a lot, Taylor, is the important and not urgent. It's the things that don't have that immediate time pressure but are the most important. It sounds like a lot of your life is important but not urgent which I know those are the hardest things to have the discipline, the focus on. Is that something where you have developed practices to make sure you're not just letting that stuff slip? Taylor Otwell: Past couple of years it's been trying to start really early on stuff like Horizon and then the thing I'm working on for this year's Laracon. I don't know. I do agree because Mohammad's going to take care of a lot of Forge stuff for me. I don't really spend a lot of time working on those features lately. I would say yes, you're right, it is important but not urgent. That is a challenging spot to be in. Jeffrey Way: Plus you have so many products. I wonder does it ever get to the point where you think "Well, I'd love to do another one but I just don't have the capacity to maintain yet another project" Taylor Otwell: Yes. There is a sense of when do you say "I did what I set out to do." This is what success is, basically. I should just maintain what I have and be happy that it got this far and not really try to overwhelm myself with a new impressive thing year after year because-- Most people will never reach the popularity of something like Laravel ever. I should just enjoy that maybe and not really try to stress out about creating the next big thing all over again, every single year. Which I think there's some merit to that as well but people don't really like that I guess [laughs]. Matt Stauffer: It's a little bit of the Apple thing, right? Is a WWDC where they don't completely blow your mind an acceptable WWDC? I would say "Yes man, I'm happy with what I've got. Just don't break it". Taylor Otwell: Yes. I remember Steve Jobs saying not to compare Laravel to Apple in any way really but he said something like most companies are lucky to ever invent one amazing product, They had invented the iPhone, the mac itself was amazing and then iPhone and iPod and all the stuff that came with it. I don't know. At some point, there's only so much you can do. I'm going to keep trying this year we'll see. Matt Stauffer: Jeffrey, what about you? Jeffrey Way: I'm okay right now but it's more of the anticipatory type of thing because my wife's pregnant so we're going to having a second child. We're not going to be having two children. Matt, I know you have more experience with that than me but it's stressing me out a little bit. Then, also this is the first year I've been working with a UI guy. I don't know what you call him, a designer or UX, I don't know what the terminology is anymore but he's doing really great work but every time he cranks out something new it ads to the backlog of stuff I have to implement, which I'm very thankful for but I'm kind of anticipating an insane amount of work in the next five months. I was just curious how you guys handle it. Then, there's also that thing where I worry sometimes when you feel stress and anxiety it's like to some extent you're creating it yourself and it's hard to determine, is this something I'm just doing myself and I am entirely in control of or are you not in control of it? That's something I think about a lot. Is there a way to turn that switch off when you need to? I don't know. Matt Stauffer: I know that you have at least some, like talking about that urgent versus not urgent thing. I know you have some urgency because there's this expectation of a certain timeline for delivering videos. Are there a lot of things on your plate, for work, that are in the longer terms? You mentioned one thing being the implementation in the UI. I know that you do visual refreshes occasionally, although in your latest podcast you talked about how a lot of that was early days and it probably will be a little bit less the case going on where you feel like you're getting more of a handle on things. Do you have a lot of things that are in the longer term bucket? Or are most things still locked in the immediate video production timeline? Jeffrey Way: Most is in the immediate. The UI work we're doing will probably be next year or at the end of this year. That's probably the most long-term work thing I'm doing. Most of it is immediate. It's very difficult to crank out content all of the time. Sometimes if I go even four days without something new I will get a tweet or somebody is complaining. It's like, you have to understand I've been doing this for three years, there's like thousands of videos. At some point, I'm going to have trouble thinking of new stuff to cover. I'm amazed every week I'm able to, I'm not complimenting myself, but I'm amazed th I'm able to think of something to publish every single week but that does wear on me a little bit to finding things to cover every week. Matt Stauffer: I hit episode 100 of the 5 Minute Geek Show and I just was like you know what I've talked for 10 to 15 minutes at a time for about 100 episodes and I don't have anything else stuff to say. People keep saying bring it back. I'm like-- Jeffrey Way: Yes and I think that's-- Have you close that down? Is it done? Matt Stauffer: It's not over. It's just on the hiatus. It's on hiatus until I come up with something else to say. You know what I mean? Jeffrey Way: Yes. Matt Stauffer: I'm not saying it's over because I'm sure that moment will come again, but right now, I'm just like, "I don't have anything else to say." If I felt that pressure like you do, to keep saying things, man-- granted, everytime the new tech comes out you can choose to go learn that tech and go to it. There's some things you can reach for, but still, I totally identify with what you're saying. It's just at some point, I just might not have anything else to teach right now. [laughs] One real quick, on ask for a pro tip, two kids. The big shift for two kids for me-- Taylor, I want to hear if you have the same perspective as-- With one kid, there's always the possibility for one parent to be taking care of the kid and the other parent being an adult. With two kids, there's now-- Even if one parent takes care of the kid, the other parent is taking care of another kid. All of a sudden, those rests that you get-- What I can imagine is, once you have three kids, it's even crazier. Because now, all of a sudden, there's never a one on one. That was the big shift that I noticed with the second kid was. Let's say, the other parent is feeding the baby or something like that, you're not cleaning up, you're taking care of a three-year-old or whatever else it ends up being. That's the biggest shift for me for a second kid. Jeffrey Way: Sounds stressful. Matt Stauffer: [laughs] It's not that bad. It's just a perspective shift, I think. Jeffrey Way: I have heard one bonus is that, like in your case, Matt, your oldest probably helps entertain your youngest quite a bit more, whether or not, depending upon you and your wife at all times for entertainment. Matt Stauffer: The older she gets, the more they play with each other and the more moments we get where they're playing together in the toy room for 45 minutes. We go, "Oh, my gosh." We sat down and had an adult conversation. That's definitely, definitely a boom. All right, that's what's going on with Laracon. You said the tickets are already sold out. Do you have a waiting list like you have previous years, Taylor? Taylor Otwell: There's not really an official waiting list right now. As people email me, I actually do put their name in a little file. I have sold a few tickets that way, but there hasn't been a lot of cancellations lately. There's not really any tickets to give out right now, anyway. Matt Stauffer: Got it, all right. I have a couple questions, but before we do that, let's talk Laracasts real quick. What kind of stuff have you-- let's say, anybody who hasn't been to Laracast for a little while, what have you been covering? What's your latest technologies that you've been looking at? Is there anything exciting you want to share with people? Jeffrey Way: Yes, sure. Let me take a look. Been doing a bunch of things lately. I finally covered Laravel Echo in full. Somehow, that was one of the things that I just missed a year ago. I went through that top to bottom. I think if you're intrigued by that, on how to communicate with the client, I think that would be really useful. It's a series called Get Real With Laravel Echo. Some things, I just have to refresh. That's one of the worst parts of my job is, even if it's from 2014 and it still works, it's like, there's just a few differences where you sort of have to record it all over again. That's the worst part of my job. Other than that, one of the things we're working on right now which I'm excited about, it's a series called How To Read Code. The whole point is not for me to write code, it's to work through the process of how you learn from the code that other people have written. There's that phrase about, "If you want to become better as a developer, you have to--" I can't remember what it is. You have to read a lot of code, you have to write a lot of code, and you have to learn, I guess. A lot of times, I think young people really get into the learning phase where they're reading the books and they're watching the videos, but they're not actually taking enough time to read code that other people have written. I notice that's sometimes a black box. People are afraid to dig behind the scenes and learn how these things are constructed, so they stay away from that. Then, also, they end up not writing as much code as they should, because they don't know what to build. This is the thing that comes up a lot. I learned this from students, is they don't know what to build. They haven't been hired yet, they're trying to think of projects they can flex their muscles on, and they have no idea where to start. With the How To Read Code, Taylor, we're actually going through the Laravel.com source code. I haven't told you about this. Taylor Otwell: Nice. Jeffrey Way: We're just pulling it up on GitHub, and we're figuring out every step, like, "Okay, if there's this repository for the markdown files, well, how is this project getting access to those markdown files and how is reading it and parsing it and replacing the URLs? How is versioning being handled?" What's fun about it is I don't have any experience with that codebase, so it's how I would exactly figure out how things are constructed. It seems like the feedback's been pretty good. Once again, I think, for so many, it's a black box. You're kind of scared to dig in because you don't know where to start. I encounter this a lot, so I hope it's useful. Then, other than that, I've been working with this UI guy. It's been fun because most of the time, I do things myself. That's a lot of coding in the browser, writing a lot of CSS and zeroing in on something that doesn't look horrible, which I'm not very good at. He is so much more systematized. He has me set up with this-- what is this app called? Marvel? Are you guys familiar with this? Marvelapp.com. It's new to me. It's amazing. He'll share a link with me and it's like an interactive website where he can swap things out, he can show me interactions and animations. Then, once I signed off on it, he sends me a link to this Mac app called Zeplin, zeplin.io. It's amazing because I'm so used to-- When extracting designs, I use Photoshop. If there's some SVG, I have to cut it out and save it as SVG. Very hard, creating new layers all the time. With this, everything is just clickable. If I need a particular icon, I click on it, and there's a button that says "Save as SVG." This is all new to me. I don't have any experience with tools like this. It's been a huge benefit to me in the last couple of months. I love it. Matt Stauffer: It's very cool. I'm going to try and go back through, listen to this, put all this in the show notes, everybody. Well, real quick going on with me. I'm updating Laravel, up and running for 5.5, so that's exciting. We finally got approval - actually, 5.5 or 5.6, I'm not sure I remember. I think we might be doing 5.6. I was going to do LTS and I think we've picked 5.6. Finally got my editors to sign off in doing that. I've got Wilbur Powery, who's doing some of the groundwork for me, and just reading through all the change logs, and making a list of all the things that are out of date, so that I don't have to do that work, so that he can just give me that list, and I'm going to sit down and write. The hope is for that to be some time in the fall for us to have edition two, so that's fun. I just left a project where I had been writing code, basically, for 20 to 30 hours a week on top of doing my normal job at Tighten just because we had a project that hit a point where no BLs was available. I felt that I just needed to fish it out. That's part of why I'm feeling so good right now because I'm going back to being a real boy again. [laughs] I'm not going to make any promises I keep making like, "I'm going to blog again. I'm gonna newsletter again." I'm actually feeling this possibility, especially when that new employee joins in May that I might actually start being a human again. I have said that at three or four times since my daughter was born two years ago and it hasn't happened yet. Who knows? Maybe that day will come. Jeffrey Way: That's great. It's great news. Matt Stauffer: Yes. That's very exciting. Okay, so I have a topic for us to talk about. I didn't prep you guys for this, so sorry about that. There's a couple of topics of conversation that have been coming up really recently at Tighten about - and if anybody listens to Twenty Percent Time podcast, you'll know at least a little bit about this. Talking about JavaScript versus PWAs versus straight Blade apps versus Blade apps that have some JavaScript components. First off the bat, before we go to the deeper conversation, I want to talk about PWAs. I want to see, have you guys dug into that at all? The iOS has just pushed out some of the core features that would make it so that you can actually write a PWA and have it work on iOS. This is the first day where you can actually even realistically consider building one that would work on the most modern devices. It's like when Flexbox first finally actually worked versus like, "This has been a thing for a while." We haven't written any production PWAs for anybody, but it's finally a point where we're like, "We can." Is that something you guys have dug into that you're even interested in or is it like, "Hey, it just became legitimate a week ago, so now, maybe, I'll put my brand on it"? Jeffrey Way: Yes. Beyond a blog post or two, I have no experience with that at all. Like you said, it's always tricky. Do I try and invest my time in this if I can't use it too much yet? It sounds like it's now becoming a possibility, but, for now, I have no experience at all. Taylor Otwell: Yes. Me either. Matt Stauffer: Okay. Well, I have no experience other than I did a whole bunch of research to write that blog post, November 9. Jeffrey Way: Right. It's one of the ones I read [chuckles]. Matt Stauffer: Yes. Nine months ago I did all that and then, basically, I said, "I'm going to go build some." Then, I discovered that it didn't even work on iOS, and I said, "Well, maybe I'll hit pause and all that until iOS supports it." They do, and I know that Keith, who works at Tighten, has been doing a lot more thinking about that than I have. I've been pushing him to-- with all his copious free time he's on at this point, he and Samantha are nearly as busy as I am - to see if he can do a part two write-up now that it's viable. I'll see if he can do that. Jeffrey Way: I'm curious to what extent it's viable. In the latest browsers, that's the idea? Matt Stauffer: Yes. Basically-- Jeffrey Way: What's the fallback look like? I wonder. Matt Stauffer: In theory, PWA should work on fallback browsers. In theory, it's not like it's not going to work, but it's more like it's just going to be a website with JavaScript versus the value that a PWA is going to provide. You don't want to really go hole-hogging to something, expecting it's going to be a PWA where people can use it offline, they can use it when their internet goes out, it's going to save stuff, stuff like that, and then have it not work on the major browsers. We're basically at a point where all the major mobile browsers are going to be little work with it. I don't know what the whole mobile Opera situation is like because I haven't dug into that. I know that we're at a point where literally all iPhone users couldn't even use PWAs up until a week ago. It was very non-viable up until a little bit ago. Now, your mobile Chrome, and your mobile Safari, and all those are all possible to use it. The biggest thing with the PWA is just it's a lot of work. It's a lot of work, and it's a lot of learning, and it's a lot of different ways of thinking about things because you're having to make things, basically, function regardless of whether or not the internet is there. It's that biggest shift in perspective over anything else. There's a lot of complexity in architecture that you need to introduce to make that happen. The good thing is, people are building tooling to make that easier, but it's something where you're not going to do it unless the client definitively needs it. I can imagine maybe you eventually building a Laracast PWA if you really wanted to so people could go on a Laracast, open up the PWA in their phone, in their iPad, and then tap the seven videos they want to download so they can watch them on a plane or something like that. That might be the possibility for it. But I still think the vast majority websites won't be PWAs because it's cost and you got to be sure that you're actually getting the benefit. Like you said, if most major browsers can't use it, then you're not going to get that benefit. We're now to the point where most major browsers could get the benefits so people should start learning about it. But again, it's just really early days right now. Jeffrey Way: Okay. Yes, I find in general, most of the apps I build are that combination you said. A little Blade, a little Vue, sometimes they're interconnected, that and something that the sort of apps I build. Although I find it gets tricky. I find that I do want to reach for something a little different. I do sometimes feel like, "If I just built this as an SPA entirely, this would be a lot cleaner." I think a lot of Laravel developers probably end up in the same boat where you're trying to do both at the same time. It gets tricky because you often end up reproducing the same logic in two different locations: one for the comments side and one for your back end. I think it's a common thing developers in our space are going through right now. Matt Stauffer: That's the second part of this conversation so I'm glad you transitioned to it. We're having this internal chat where Daniel Coborn is basically saying, "Look, most of the sites were hired to do or eventually are going to have some JavaScript so why don't you just go whole hog in the first place?" Caleb is saying, "I want to build Blade apps that have little widgets, and I'd rather explicitly do all the work in my controller and then pass it in these props to the Vue, which is when it comes up." I'm saying, "I want to do all Blade until I find a definitive need the JavaScript's going to happen. When that happens, then I'll modify it the way it should be. We have this kind of continue or whatever. We chose as a different side. I wanted to hear from you guys. If you were to start a new app today, are you in the world where you say, "You know what? I'm going to do Blade and then I'll modify it." Are you in the world where you're like, "You know what? I'm just going to do single-page app all the way." Or are you somewhere in between? Jeffrey just answered a little bit so I guess Taylor, what's your approach right now? Taylor Otwell: The latest thing I wrote which hasn't been unveiled yet, I did basically build it as a single-page app using Vue and Vue Router. Honestly, I really like it. I think Vue Router is pretty nice and easy to use. I think for this particular use case, it just solved the bunch of problems that we would have had trying to make it all Blade. I feel like my use cases, both times I've interacted with Vue Router, which is Horizon as a single-page app, basically, and the new thing. But then, there are unique situations where I wasn't having to duplicate a lot of rules on the front end. Either you authenticated to view the whole thing or you're not. There wasn't a bunch of other authorization that had to happen for various little features. That made it a little simpler, I feel like, to build it as a single-page app because I wasn't having to duplicate a bunch of junk. But if I was going to build something like Forge as a single-page app, I probably would have a little more duplication on various things. I don't know, man. I see Daniel's point to an extent that it does feel good to just go whole hog and embrace it because it feels nice to do it all in JavaScript if you go down that path. I don't know. I think Caleb's point, I feel that pain most often on authorization. I feel like than anything else. Jeffrey Way: Yes, absolutely. Matt, I'm curious about your point. Because I have seen a bit of a backlash to JavaScript in general, where people think, "Okay, you're getting some extra interactivity but the complexity you introduce to make all of these work is sometimes insane." Just the fact that Mix has to exist to make that build process somewhat easy to understand, shows how complicated this stuff can be. I understand exactly what Taylor's saying but I also get the angle of, "Let's put this off as far as we possibly can." Has your thinking on that changed in the last year? Matt Stauffer: Yes. I would say that I love Vue, I love React, I love single-page apps when they're appropriate. I think that knowing what a lot of projects Daniel has spanned recently, and that type of thing that I know Taylor is working on right now. I would pick SPA. I pick Vue Router SPA and I'd pick an API first in that context but I think that we can do that and we can then assume that that is always the right way to go forward. To me, that's not the case at all because of what you just said. I think testing is harder. I think debugging is harder. I think NPM and all the node modules issues breaks more. I think the entire complexity of this system is significantly higher. I think onboarding new developers in the system is more complicated and I want to make sure that it's not because I know PHP better than I know Javascript. I've been writing Javascript for as long as I've been writing PHP. Granted I haven't been writing React and Vue as long as I've been writing Laravel. I think I understand them relatively well and just the whole system everything is more complex than an all Javascript app. I am willing to make that statement and so to me- Taylor Otwell: The testing is definitely more complex. Jeffrey Way: Yes. Matt Stauffer: Yes. So to me, if I'm in a place where I can accomplish it with Blade then I'm not going to introduce any Javascript. If I can accomplish with Blade and the occasional Javascript widget then I'm going to use it with Blade and the occasional Javascript widget. That doesn't mean I don't believe that there are plenty of apps that are better as all Javascript or maybe even not using Vue Router or whatever but like a Javascript page that navigates to another Javascript page so you're doing your React containers or whatever else it ends up doing. I'm 100% on board with that possibility but I need to be convinced that that's the way to do it before I go there. Jeffrey Way: Taylor, for the SPAs you're building, when it comes to testing, are you doing endpoint testing for your backend code? In addition to that, how much client-side testing are you doing? Do you have tons of [crosstalk] Taylor Otwell: I wrote all of the endpoint test and there's hundreds of them for a new project and then we haven't even written the front end test yet, mainly because I'm working with other people on this. Of course, I have Steve, my designer, and then I have another person working on front-end stuff. It's also complicated by the fact that this is a package, it's not an app that Dusk is really easy to pull in to and so we haven't really toyed around with making Dusk work in a package environment yet. I don't know what Dusk's going to look like. We may end up using some kind of Javascript solution. There's just so many little subtle interactions on the front-end that are going to be one, important to test and two, hard to test I think. I don't know, we'll see I haven't gotten there yet. Jeffrey Way: Yes, I'm curious to see how you figure that out. Taylor Otwell: I would like to pull dusk in and just use it to test the package. Ideally kind of like the test bench for the back end which I used to write all my endpoint tests. Hopefully something similarly -- we can do something similar to that with Dusk, we'll see. Matt Stauffer: I hadn't thought about that because I was like, "Oh yes, Javascript just use Java--" but it's not, it's multiple pieces. We have found that once you put the work into the Javascript testing if that thing is full-on Javascript you can get it to be tenable? I feel like Javascript testing is, in our world, is probably the next great hurdle for us to make simple for people. Basic Laravel testing was one hurdle and then, what do you call it?, your package Jeffrey that was eventually pulled in the core like application testing that was the next hurdle. Gulp was a hurdle and Mix was a hurdle. These are hurdles where they're really complicated things that we look at and said, "You know what? People in the community are needing this to be simpler" and someone sat out usually one of the two of you sat out to make it a lot easier. I know that there's at least two people talking at Laracon about testing. Testing in Javascript and stuff like that. I'm super excited about the possibility that -- I thought there's two. I know that Samantha is at least. Her talk is about full-stack testing strategies. The reason for this is because at Tighten we're always asking this question of, what are our different ways of testing the whole way up and down the stack? Samantha's our resident React guru and we've had quite a few React developers at this point but she's the lead in thinking there and she's been asking this question a lot of like, "What does testing look like?" what I told her was like, "I'm going to wait until you give this talk to demand this of you of you but I want you to make it really easy for me and any app to write a Javascript test" I know Dusk and I know Laravel and PHPUnit but I want you to make it super easy for me. I'm hoping that that's what her talk is going to do for me and for everybody else. No pressure, Samantha. [laughs] Jeffrey Way: That would be great. I think so many times developers don't think about that. I think maybe they get too deep in the woods thinking, "okay, this is quite you have to do. You got to get this and this and this and this and this and then pull in these 8 dependencies then you're ready to go." They forget that to a newcomer that's horrible it's so frustrating. The view test utils library works great but just to get to the point where you can start writing your first test it's a lot of work. In many cases like this, it's not spotlighting them specifically but in so many cases like this you find situations where, "This could be significantly easier to get started" and it's not a badge of honor that you have to go through so many hurdles to write your first test, it should be easier. Matt Stauffer: I like that as a metric. I would like to have the ability to write a Reactor Vue test out of the gate. The same way that with a new Laravel app, I can write a test out of the gate without. I literally open up example test and just change some letters and I'm writing my test, that's brilliant. That was not what writing tests in PHP unit used to be like. It's not as if PHP unit is easy to bootstrap but Taylor and company did the work to make that easy, and you did the work to make it easy with application testing upon the core. I'm hopeful that we're we're moving in that direction. Alright. JavaScript, backends, Laracon , Laracasts, Laravel up and running. What are you guys learning these days? Are there any books you're reading? I know Taylor you've been talking about stoicism a lot. I started that one book, the really old one is it Marcus Aurelius or something like that? Taylor Otwell: Yes. Matt Stauffer: I started the book and I'm just moving really slowly through it. Could you could you give me the TLDR elevator pitch for stoicism? Is that is that possible? Jeffrey Way: What is stoicism? Matt Stauffer: Yes. What is stoicism, Taylor? Taylor Otwell: I think the one-sentence thing is this? It reminds me of that serenity prayer, I don't know if you ever heard that where stoicism is very focused on not worrying at all about the things that are out of your control. They define the things that are in your control as only your own boss, basically. Your health is not in your control, your job is not really, it's influenced by external factors. That was a little confusing to me at first because some things, say you're in a tennis match and you're facing someone, and whether you win or not is partly in your control, but it's partly not. I was always confused by that from a stoic perspective. There was one book that helped me resolve that situation, where it was like, You want to internalize your goals a little bit. To succeed at the tennis match is basically to give it your best so to speak. Whether you win or lose, is out of your control at that point, but you're still succeeding as long as you prepare and practice to give it your best shot. That's the main gist of Stoicism is not worrying about anything that's out of your control. Only worrying about the things you actually can control. Everything revolves around that. Matt Stauffer: I like that. Taylor Otwell: Basically Marcus Aurelius' book re-visits that theme a lot in various circumstances. One of the other popular stoic books, probably the other most popular Seneca's letters. He visits that topic on a variety of issues. Death and dying, sickness, what it means to be wealthy, and be a stoic because he was pretty wealthy. Of course, Marcus Aurelius was the Emperor so he was extremely privileged and wealthy. I think Marcus Aurelius' book is surprisingly relatable for a Roman Emperor that lived 2,000 years ago. [laughter] A lot of the things he mentions struggling with are very relatable. I was surprised at how modern it all came across really for someone that you would think would be very disconnected from our life experience. Matt Stauffer: Did I remember you saying something along the lines of Ryan Holiday, the guy who's speaking doing something about stoicism? Taylor Otwell: Yes, he wrote the Daily Stoic which is a really popular book. There's 365 little chapters, every day it's like a little daily reading. He expounds on it in a couple paragraphs. It's a pretty cool little book. Matt Stauffer: Cool. Taylor Otwell: On the tech side what I've been looking into a lot recently is containers, AWS, deployment, stuff like that. Serverless stuff like AWS Lambda. I feel there's gold in those hills somewhere. [laughter] I just feel like it's not really being presented and packaged up in a very approachable way right now. Because AWS feels very low level, it gives you all the tools you need to make things happen but you still have to tie them together in pretty complicated ways to build something useful. Probably the person that ties that kind of thing together the best is something like Heroku but just playing with some of those technologies. I think AWS Lambda is really cool. I really love the idea behind it, where basically you start out with just a function. By default, it's just like a JavaScript function that receives some arguments. You think of it like a little artisan command that receives a payload from the command line. You can invoke this function and pass it, little arguments. Then you can do whatever you want, you never really have to think about the underlying server. I think their concurrency limit is like 1000 concurrent tasks running at a time. It's pretty scalable for most situations, but you can actually do pretty interesting things like you can run a Laravel app on AWS Lambda which I actually did this week. I'm using some tutorials that people had written. It's a really interesting technology and like I said I feel like there's cool stuff there that just needs to be mined out, repackaged, and presented to people in this sort of digestible way. I've been trying to digest it myself and it's very complicated and there's actually a real lack of quality, like guides and documentation on how to do anything actually useful. There's lots of like, "Let's deploy a hello world" nginx page to elastic container service but how do I do zero downtime deployments reliably? How do I set up all my key workers reliably?" All that stuff is not there. Jeffry: You guys are making me feel bad. I'm trying to think of what I'm learning right now and the answer is nothing. I can't think of anything. Taylor Otwell: I've been playing Rocket League like an hour and a half a day. [laughs] Jeffrey Way: I think sometimes it's good to not always reach for something new but to get yourself in a habit of just a daily routine of every single day I'm going to chip away at this. There have been plenty of times where I'm really pushing my boundaries for a little bit trying to learn something new but I can't say that right now. I'm feeling horrible right now. Matt Stauffer: I can tell you, Jeffrey, I'm not learning anything about code right now so don't feel horrible. Jeffrey Way: Really? Matt Stauffer: I'm learning things. Let me tell you the things I'm learning and I bet you you'll have something related. I'm listening to this woman, Esther Perel, who's this relationship expert. I'm listening to her stuff nonstop. My wife and I are both listening to all her stuff. It's really good. It's like this progressive thinking about relationships but every time I've listened or read to people who are talking about this type of relationship stuff they're like, "By the way, you should just have open relationships and be married to 20 people and have sex with all of them. It's no big problem." I'm like, "That's not me so much." But she has progressive thinking that kind of throws of some of the old croft that we brought along with us but stills very much focused on, "Well you're married to this person, stay married to this person." It's helpful. It's like opening up my mind a little bit. The other thing I'm thinking about is money. I may have talked to you guys a little bit I've been- Jeffry: Yes, you're into that lately- Matt Stauffer: I'm so into it. I just got obsessed with how much I hate having a mortgage. It became this massive thing for me. I literally just looked at my mortgage statement and I think this is it, beginning balance, applied balance, and ending balance. I lived in my house for I feel like several years now. It's atleast one year and it might be two years. I'm paying thousands of dollars a month towards my mortgage and I've applied $5,000 to my balance because I'm paying everything to the interest this whole time. I just feel like I'm in this awful system. You guys know this but I've been listening to these audiobooks. One of them is the millionaire one, what's it called? The Millionaire Next Door and then the other one is The Simple Path To Wealth and just focusing on like really simple investment strategies, really simple decisions you can make. I'm not going to talk about -- I could talk to you guys your ear off in the next half hour but to me, the two things I've been learning about are simpler, healthier approaches to money and investment. Then relationship stuff where it's kind of like helping you understand what kind of garbage you're bringing into your marriage or your relationship but in a way that is for the focus of you staying there, to that person long-term versus a lot of the other alternative. You know, half ways to thinking about it. Jeffrey Way: I live everything you say on the finance stuff because you think the more you can simplify your financial situation the better it's going to improve your relationship as a result, too. I think it's the number one or the number two cause of fighting in relationships, is financial issues and of course, not everyone is in control of it. The more you can simplify your finances then and not buy a new car and instead buy an older car or something you can afford. The more you can simplify it, the better it's going to improve your relationship with your wife or your spouse and your kids. I see nothing but good things there. One thing I am doing, though -- This may interest you, Matt, when we had the Laravel podcast months ago I said, "Years ago I stopped playing guitar and the interest I had left" it's come back in the last couple of months. Matt Stauffer: That's awesome. Jeffrey Way: I know and I'm very happy about it. I went and bought a guitar and an amp. I've been playing lately. You can maybe see it in the back there and it's funny to see the parallels with code. I'm kind of getting in -- I'm approaching guitar from a more mature point of view, I guess. I'm getting more into this idea of like, "Okay, every single day I'm going to be working on this. I'm going to take a very fundamental approach to building up skills, whereas when I was a kid it was more, "I want to learn how to do this. Let's figure out how to do this as quickly as possible." Now, I take a very different approach to it, which I feel all of this parallels with code. It's very funny. I noticed on Twitter the other day a bunch of people were talking about how many coders have some interest in music or have some experience with music. It's interesting, the overlap there. Matt Stauffer: I just read the intro to this Imposters Handbook thing that I tweeted out. I wish I could remember the guy's name because he's a well-known software author but he's talking about being a saxophone player. I remembered having read a book by him in the past where he is making a lot of those parallels. Do you know who that is what is? Jeffrey Way: What is it? Hanselmann? Matt Stauffer: It wasn't Hanselmann. He wrote one but then it was the one after that. You guys would definitely know who this guy is but I just remember that he had studied saxophone. I remember him talking about that in his book that I read but yes, who knows who wrote that. Anyway, I'm only a chapter into this Imposters Handbook but I like that. Jeffrey Way: Very cool. Matt Stauffer: We are at 50 minutes, which is usually when we start ramping it down. Is there anything else going on with you guys, anything you've been thinking about or learning or exciting about that you want to get a chance to chat about? Taylor Otwell: Not for me that I haven't already discussed, I don't think. No, just what I already discussed but we're working on new Forge things, trying to make people's lives easier and Envoyer is getting redesigned, which it hasn't gotten since I originally wrote it in bootstrap, so that will be nice. Other than that, I think that's about it really on my end. Jeffrey Way: Matt, can you share any news about who's coming up on the podcast? Matt Stauffer: Oh man, I don't actually know who's next but let me go pull up my Trello board real quick. Basically what I'm trying to do is, I've been a little sneaky on this but I'm trying to mix up people who everybody knows, who everyone's been waiting for because every once in a while people are like, "Why has Adam not been in the podcast or whatever". I'm trying to mix up those people who I know that people are anxious about, for the people who they're not anxious about but I know that they're going to be really excited when they hear it. There's a couple of people who I know everybody want to hear and I'm trying to spread them out like every three or four guests and then be like, "Yes, but there's these other people that you don't know are super awesome." Some of my favorite responses have been people like, "I've never even heard that person's name before and now I want to be their best friend", I'm like, "Yes, I did my job well." Of course, the well-known names in Laravel are all going to get interviewed. I've got a list of dozens and dozens and dozens of people. I know that Adam's going to be coming up soon for sure and your Eric Barnes and your Chris Fidao's and them are going to be up in there, of course, as well and Freek and folks like that. One of the things I did also, was I didn't interview anybody from Tighten because I didn't want to seem like it was nepotism, but there's quite a few really interesting people at Tighten, so I think the Tightenites are going-- I'm going to start slipping in some Tightenites and some Vehikl and Spatie folks. I'm going to start slipping in some of those folks as well too. There's a huge list, I mean, you guys, I could do dozens and dozens and dozens of more just from the list I originally spit out before even touching any of the suggestions I got on Twitter. There's a lot of good ones coming. Jeffrey Way: I'm excited. It's been fun hearing from people that I'm not overly familiar with. I think that's a very wise choice you've made. Matt Stauffer: I'm happy to hear it, I had so much fun. Of course, I miss you guys which is why we're back here for today. I figured we can do this one, every dozen or something like that, keep that lines of communication going. Jeffrey Way: Yes. Cool. Matt Stauffer: All right guys, feeling good. Anything else? Jeffrey Way: That's it. Matt Stauffer: It was a ton of fun talking to you guys and I can't wait to see you in a couple months. Until then, thanks for hanging out and we'll see you all later. Taylor Otwell: Alright. See you. [music]

JavaScript Jabber
JSJ 276: Vue.js with Maximilian Schwarzmüller

JavaScript Jabber

Play Episode Listen Later Aug 29, 2017 50:32


JSJ 276: Vue.js with Maximilian Schwarzmüller          This episode of JavaScript Jabber features panelists AJ O’Neal, Aimee Knight, and Charles Max Wood. They talk with special guest Maximilian Schwarzmüller about Vue.js. Tune in to find out more! [00:02:21] Introduction to Maximilian Maximilian lives in Germany and is a self-taught web developer. He mostly teaches web development on Udemy and his YouTube channel. Vue.js is just one topic that he teaches. He enjoys teaching and passing on information to other web developers: he believes it is the best thing you can do. [00:03:10] What other courses do you teach? He tries to cover basic web development topics. On Udemy Maximilian teaches Angular and generic JavaScript courses. He also teaches courses on Angular and Node.js. On his YouTube channel he teaches more back-end development and Node.js courses. [00:04:00] Elevator Pitch for Vue.js Vue.js is a new framework that is popular because it is similar to React but also has Angular features. It is easier to learn than React: not everything is in JavaScript and JXS is not included. It is more also flexible and has better performance than Angular 1. Vue.js is easier than Angular 2 both to learn and master. It is still a JavaScript framework, where developers build single page applications or drop in existing applications to enhance views, control parts of a page with JavaScript, get rid of jQuery, and have an easier time creating applications. [00:05:10] What are some challenges people run into as they learn it? If developers are brand new to Vue.js, getting started is easy. It has one thing that a lot of frameworks lack which is awesome documentation. Vuejs.org has a comprehension guide that makes getting started simple. There is a general idea that developers still need to learn of how to structure the app, which is similar to React. Developers have to learn how to build components which is used to build the application. The build template is where everything is controlled with Vue.js. JavaScript code is used as well as template syntax. [00:06:27] So you build the template and then tell it how each part is supposed to behave with JavaScript? Yes. To get started use Vue instances, which are JavaScript objects, control parts of the page and it is marked by an id on an HTML element. Then, write a Vue template, which is basically HTML code where extra features can be used to easily output a variable. It makes it much easier to control via Vue instance. Then add a code, add a method which changes the property of Vue instance. It works together and is easy to build up templates and control your page with Vue.   [00:11:12] Vue’s Advantages That depends on the application. Vue.js is easier to learn, which is an advantage when trying to get new developers. The documentation on the website is excellent, which helps when learning the language. Vue also has it’s own single team that develops it’s products, such as the Vue Router and Vue X. It has better performance, but for extremely big projects Angular 4 may be better. [00:13:38] Does Vue have routing in it? Vue.js has its own router. The core Vue team develops it, which is a different package that is downloaded separately. The advantage to this is that if you don’t need the router, then you don’t have it in your bundle but can easily add it. Once it is added it integrates nicely. [00:14:16] How does the Vue router compare to the React router? The Vue router offers the same features as the React router: nested routes, passing parameters, route guards, etc. The Vue router integrates nicely into the Vue package. It also injects into every component you have and is very simple. All that has to be done is just to execute one line of code and then the router is in the project. [00:17:10] How often is Vue.js upgraded and how hard is it to keep up? Vue.js only has two versions. Upgrading from Vue 1 to Vue 2 is easy. The base syntax and framework is still the same, you just need to adjust and move on. Since Vue 2 they released bigger upgrades. There so far haven’t been any issues upgrading, they have added new features, and still use the old code. [00:19:09] What is the feature with Vue as far as adoption goes? It is hard to predict but there are indicators that Vue.js has a good future. Vue.js probably will not overtake Angular but it is becoming important for companies in Asia, which is an important market. They have developed an Ionic version of Vue.js. There has also been an ongoing trend on GitHub. [00:21:20] Why do we keep having new frameworks and versions? The language of JavaScript itself is seeing rapid development. New features have been added, new web technologies developed, etc. One reason is that developers do more on the web. They want easier ways of building applications. There is no perfect framework so there has to be tradeoffs between the frameworks. There is no perfect solution for every application so need a framework for every application. [00:23:16] What is left undone in Vue.js? It is complete as far as something can be complete. Developers are working on service rendering to improve search engine optimization and initial rendering performance. They are also working on progress web app support.   [00:28:02] What drives the way that Vue grows? There is simplicity in their documentation. While the documentation is simple, the framework is also easy to learn. Maximilian believes that the reason Vue.js took off is because the documentation and framework work together nicely. [00:31:19] What is going to keep Vue around? The support is not based on corporation, but there is an Asian company that is developing a framework that uses Vue to with their own product. Because of this, can draw an assumption that they will keep Vue.js around. Vue.js also has a strong community and core team, giving it a good support system. [00:34:15] What are people using if they want to use Native Apps but they want to use Vue? They are having a hard time right now. Frameworks for Quasar and Weex are in the early stages. A Vue.js app needs to be built but there are packages that are working in that direction. [00:37:25] How do you structure your Udemy courses and what do you think of that as a whole? Maximilian started teaching Udemy courses about one and a half years ago. He really enjoys teaching. Each course follows a similar pattern. He starts with a rough topic, researches the topic to see what is in demand, and builds a course around projects. He then fits all the things he wants to teach into the project, plans the course curriculum, records and edits the lecture videos, and then finally releases the course. [00:39:22] What do you get the most questions about with your Vue course? Questions are mixed. Students dive into the course quickly but then pause. Most questions are about the basics. They usually have something to do with the first few sections of the course or setup problems. Picks          AJ: Broke Eatery  Dream Dinners Aimee: Julie Evans blog  Nodevember Charles: The Ketogenic Diet 2 Keto Dudes Podcast  Max: Nuxt.js Framework  Slack “Chat with yourself” Channel Links Onsen UI for Vue Twitter Youtube https://academind.com/ Utemy Vue.js Course 

All JavaScript Podcasts by Devchat.tv
JSJ 276: Vue.js with Maximilian Schwarzmüller

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Aug 29, 2017 50:32


JSJ 276: Vue.js with Maximilian Schwarzmüller          This episode of JavaScript Jabber features panelists AJ O’Neal, Aimee Knight, and Charles Max Wood. They talk with special guest Maximilian Schwarzmüller about Vue.js. Tune in to find out more! [00:02:21] Introduction to Maximilian Maximilian lives in Germany and is a self-taught web developer. He mostly teaches web development on Udemy and his YouTube channel. Vue.js is just one topic that he teaches. He enjoys teaching and passing on information to other web developers: he believes it is the best thing you can do. [00:03:10] What other courses do you teach? He tries to cover basic web development topics. On Udemy Maximilian teaches Angular and generic JavaScript courses. He also teaches courses on Angular and Node.js. On his YouTube channel he teaches more back-end development and Node.js courses. [00:04:00] Elevator Pitch for Vue.js Vue.js is a new framework that is popular because it is similar to React but also has Angular features. It is easier to learn than React: not everything is in JavaScript and JXS is not included. It is more also flexible and has better performance than Angular 1. Vue.js is easier than Angular 2 both to learn and master. It is still a JavaScript framework, where developers build single page applications or drop in existing applications to enhance views, control parts of a page with JavaScript, get rid of jQuery, and have an easier time creating applications. [00:05:10] What are some challenges people run into as they learn it? If developers are brand new to Vue.js, getting started is easy. It has one thing that a lot of frameworks lack which is awesome documentation. Vuejs.org has a comprehension guide that makes getting started simple. There is a general idea that developers still need to learn of how to structure the app, which is similar to React. Developers have to learn how to build components which is used to build the application. The build template is where everything is controlled with Vue.js. JavaScript code is used as well as template syntax. [00:06:27] So you build the template and then tell it how each part is supposed to behave with JavaScript? Yes. To get started use Vue instances, which are JavaScript objects, control parts of the page and it is marked by an id on an HTML element. Then, write a Vue template, which is basically HTML code where extra features can be used to easily output a variable. It makes it much easier to control via Vue instance. Then add a code, add a method which changes the property of Vue instance. It works together and is easy to build up templates and control your page with Vue.   [00:11:12] Vue’s Advantages That depends on the application. Vue.js is easier to learn, which is an advantage when trying to get new developers. The documentation on the website is excellent, which helps when learning the language. Vue also has it’s own single team that develops it’s products, such as the Vue Router and Vue X. It has better performance, but for extremely big projects Angular 4 may be better. [00:13:38] Does Vue have routing in it? Vue.js has its own router. The core Vue team develops it, which is a different package that is downloaded separately. The advantage to this is that if you don’t need the router, then you don’t have it in your bundle but can easily add it. Once it is added it integrates nicely. [00:14:16] How does the Vue router compare to the React router? The Vue router offers the same features as the React router: nested routes, passing parameters, route guards, etc. The Vue router integrates nicely into the Vue package. It also injects into every component you have and is very simple. All that has to be done is just to execute one line of code and then the router is in the project. [00:17:10] How often is Vue.js upgraded and how hard is it to keep up? Vue.js only has two versions. Upgrading from Vue 1 to Vue 2 is easy. The base syntax and framework is still the same, you just need to adjust and move on. Since Vue 2 they released bigger upgrades. There so far haven’t been any issues upgrading, they have added new features, and still use the old code. [00:19:09] What is the feature with Vue as far as adoption goes? It is hard to predict but there are indicators that Vue.js has a good future. Vue.js probably will not overtake Angular but it is becoming important for companies in Asia, which is an important market. They have developed an Ionic version of Vue.js. There has also been an ongoing trend on GitHub. [00:21:20] Why do we keep having new frameworks and versions? The language of JavaScript itself is seeing rapid development. New features have been added, new web technologies developed, etc. One reason is that developers do more on the web. They want easier ways of building applications. There is no perfect framework so there has to be tradeoffs between the frameworks. There is no perfect solution for every application so need a framework for every application. [00:23:16] What is left undone in Vue.js? It is complete as far as something can be complete. Developers are working on service rendering to improve search engine optimization and initial rendering performance. They are also working on progress web app support.   [00:28:02] What drives the way that Vue grows? There is simplicity in their documentation. While the documentation is simple, the framework is also easy to learn. Maximilian believes that the reason Vue.js took off is because the documentation and framework work together nicely. [00:31:19] What is going to keep Vue around? The support is not based on corporation, but there is an Asian company that is developing a framework that uses Vue to with their own product. Because of this, can draw an assumption that they will keep Vue.js around. Vue.js also has a strong community and core team, giving it a good support system. [00:34:15] What are people using if they want to use Native Apps but they want to use Vue? They are having a hard time right now. Frameworks for Quasar and Weex are in the early stages. A Vue.js app needs to be built but there are packages that are working in that direction. [00:37:25] How do you structure your Udemy courses and what do you think of that as a whole? Maximilian started teaching Udemy courses about one and a half years ago. He really enjoys teaching. Each course follows a similar pattern. He starts with a rough topic, researches the topic to see what is in demand, and builds a course around projects. He then fits all the things he wants to teach into the project, plans the course curriculum, records and edits the lecture videos, and then finally releases the course. [00:39:22] What do you get the most questions about with your Vue course? Questions are mixed. Students dive into the course quickly but then pause. Most questions are about the basics. They usually have something to do with the first few sections of the course or setup problems. Picks          AJ: Broke Eatery  Dream Dinners Aimee: Julie Evans blog  Nodevember Charles: The Ketogenic Diet 2 Keto Dudes Podcast  Max: Nuxt.js Framework  Slack “Chat with yourself” Channel Links Onsen UI for Vue Twitter Youtube https://academind.com/ Utemy Vue.js Course 

Devchat.tv Master Feed
JSJ 276: Vue.js with Maximilian Schwarzmüller

Devchat.tv Master Feed

Play Episode Listen Later Aug 29, 2017 50:32


JSJ 276: Vue.js with Maximilian Schwarzmüller          This episode of JavaScript Jabber features panelists AJ O’Neal, Aimee Knight, and Charles Max Wood. They talk with special guest Maximilian Schwarzmüller about Vue.js. Tune in to find out more! [00:02:21] Introduction to Maximilian Maximilian lives in Germany and is a self-taught web developer. He mostly teaches web development on Udemy and his YouTube channel. Vue.js is just one topic that he teaches. He enjoys teaching and passing on information to other web developers: he believes it is the best thing you can do. [00:03:10] What other courses do you teach? He tries to cover basic web development topics. On Udemy Maximilian teaches Angular and generic JavaScript courses. He also teaches courses on Angular and Node.js. On his YouTube channel he teaches more back-end development and Node.js courses. [00:04:00] Elevator Pitch for Vue.js Vue.js is a new framework that is popular because it is similar to React but also has Angular features. It is easier to learn than React: not everything is in JavaScript and JXS is not included. It is more also flexible and has better performance than Angular 1. Vue.js is easier than Angular 2 both to learn and master. It is still a JavaScript framework, where developers build single page applications or drop in existing applications to enhance views, control parts of a page with JavaScript, get rid of jQuery, and have an easier time creating applications. [00:05:10] What are some challenges people run into as they learn it? If developers are brand new to Vue.js, getting started is easy. It has one thing that a lot of frameworks lack which is awesome documentation. Vuejs.org has a comprehension guide that makes getting started simple. There is a general idea that developers still need to learn of how to structure the app, which is similar to React. Developers have to learn how to build components which is used to build the application. The build template is where everything is controlled with Vue.js. JavaScript code is used as well as template syntax. [00:06:27] So you build the template and then tell it how each part is supposed to behave with JavaScript? Yes. To get started use Vue instances, which are JavaScript objects, control parts of the page and it is marked by an id on an HTML element. Then, write a Vue template, which is basically HTML code where extra features can be used to easily output a variable. It makes it much easier to control via Vue instance. Then add a code, add a method which changes the property of Vue instance. It works together and is easy to build up templates and control your page with Vue.   [00:11:12] Vue’s Advantages That depends on the application. Vue.js is easier to learn, which is an advantage when trying to get new developers. The documentation on the website is excellent, which helps when learning the language. Vue also has it’s own single team that develops it’s products, such as the Vue Router and Vue X. It has better performance, but for extremely big projects Angular 4 may be better. [00:13:38] Does Vue have routing in it? Vue.js has its own router. The core Vue team develops it, which is a different package that is downloaded separately. The advantage to this is that if you don’t need the router, then you don’t have it in your bundle but can easily add it. Once it is added it integrates nicely. [00:14:16] How does the Vue router compare to the React router? The Vue router offers the same features as the React router: nested routes, passing parameters, route guards, etc. The Vue router integrates nicely into the Vue package. It also injects into every component you have and is very simple. All that has to be done is just to execute one line of code and then the router is in the project. [00:17:10] How often is Vue.js upgraded and how hard is it to keep up? Vue.js only has two versions. Upgrading from Vue 1 to Vue 2 is easy. The base syntax and framework is still the same, you just need to adjust and move on. Since Vue 2 they released bigger upgrades. There so far haven’t been any issues upgrading, they have added new features, and still use the old code. [00:19:09] What is the feature with Vue as far as adoption goes? It is hard to predict but there are indicators that Vue.js has a good future. Vue.js probably will not overtake Angular but it is becoming important for companies in Asia, which is an important market. They have developed an Ionic version of Vue.js. There has also been an ongoing trend on GitHub. [00:21:20] Why do we keep having new frameworks and versions? The language of JavaScript itself is seeing rapid development. New features have been added, new web technologies developed, etc. One reason is that developers do more on the web. They want easier ways of building applications. There is no perfect framework so there has to be tradeoffs between the frameworks. There is no perfect solution for every application so need a framework for every application. [00:23:16] What is left undone in Vue.js? It is complete as far as something can be complete. Developers are working on service rendering to improve search engine optimization and initial rendering performance. They are also working on progress web app support.   [00:28:02] What drives the way that Vue grows? There is simplicity in their documentation. While the documentation is simple, the framework is also easy to learn. Maximilian believes that the reason Vue.js took off is because the documentation and framework work together nicely. [00:31:19] What is going to keep Vue around? The support is not based on corporation, but there is an Asian company that is developing a framework that uses Vue to with their own product. Because of this, can draw an assumption that they will keep Vue.js around. Vue.js also has a strong community and core team, giving it a good support system. [00:34:15] What are people using if they want to use Native Apps but they want to use Vue? They are having a hard time right now. Frameworks for Quasar and Weex are in the early stages. A Vue.js app needs to be built but there are packages that are working in that direction. [00:37:25] How do you structure your Udemy courses and what do you think of that as a whole? Maximilian started teaching Udemy courses about one and a half years ago. He really enjoys teaching. Each course follows a similar pattern. He starts with a rough topic, researches the topic to see what is in demand, and builds a course around projects. He then fits all the things he wants to teach into the project, plans the course curriculum, records and edits the lecture videos, and then finally releases the course. [00:39:22] What do you get the most questions about with your Vue course? Questions are mixed. Students dive into the course quickly but then pause. Most questions are about the basics. They usually have something to do with the first few sections of the course or setup problems. Picks          AJ: Broke Eatery  Dream Dinners Aimee: Julie Evans blog  Nodevember Charles: The Ketogenic Diet 2 Keto Dudes Podcast  Max: Nuxt.js Framework  Slack “Chat with yourself” Channel Links Onsen UI for Vue Twitter Youtube https://academind.com/ Utemy Vue.js Course 

Tech Time Podcast
Vue JS with Wes Hatch

Tech Time Podcast

Play Episode Listen Later Nov 8, 2016 21:12


VueJs is one of the 2016 top front runner frameworks for developing and creating modern and sleek web interfaces. Vue.js is a very modest javascript based ‘library, that carries the best of Angular and React. It gets easily combined with other tools to convert into a fully functional framework. Its design emphasized the "Ease of Use" and adopts the Model–view–viewmodel (MVVM) design paradigm which helps in the simplification of conception. In this podcast, Atish Narlawar talks with Wes Hatch, Senior Web Engineer at Huge about VueJs. Wes goes through an overview of last decade spectrum of Javascript world and gives the background behind the inception of VueJs. He explains the high-level architecture and the types of problems Vue Js tries to solve for the various context. Wes details about the Vue components, two-way data flow, and data binding model, state managements, Veux and the tools interacts as a part of the full blown ecosystem such as Vue Router, Chrome plugin, Vue-CLI, Vueify, Vue SSR. In the end, He tries to compare Vue with React and Angular, presents the strengths Vue possess with its simplicity, lean learning curve, very active developer community and its influence and adoption in the current market. He discusses, how Alibaba is getting attracted to its development and the progress towards Vue-Native Weex for the native bridge similar to React-Native. Wes also helps to understand, How Vue can be fit into Elm, Meteor ecosystem and can scale to production level grade app if needed. Venue: Huge, Brooklyn, NY. Host: Atish Narlawar Contact: techpodcast@aol.com Guest: Wes Hatch