Syntax - Tasty Web Development Treats

By Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Listen to a podcast, please open Podcast Republic app. Available on Google Play Store.


Category: Tech News

Open in Apple Podcasts


Open RSS feed


Open Website


Rate for this podcast

Subscribers: 1349
Reviews: 4


 Feb 8, 2020
i listen to practically every episode, and gain tips all the time.


 Oct 24, 2018

james
 Sep 20, 2018
funny and informative for web devs

A Podcast Republic user
 Sep 5, 2018

Description

Full Stack Developers Wes Bos and Scott Tolinski dive deep into web development topics, explaining how they work and talking about their own experiences. They cover from JavaScript frameworks like React, to the latest advancements in CSS to simplifying web tooling.

Episode Date
React Query + More React with Tanner Linsley
01:05:25

In this episode of Syntax, Scott and Wes talk with Tanner Linsley about React Query, how it works, why you might want to use it, and more!

Deque - Sponsor

Deque’s free axe browser extension helps developers instantly catch 50% of accessibility bugs while they code. It’s lightweight, easy-to-use, and has zero false positives. Get started for free at deque.com/axe.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Mux - Sponsor

Mux Video is an API-first platform that makes it easy for any developer to build beautiful video. Powered by data and designed by video experts, your video will work perfectly on every device, every time. Mux Video handles storage, encoding, and delivery so you can focus on building your product. Live streaming is just as easy and Mux will scale with you as you grow, whether you’re serving a few dozen streams or a few million. Visit mux.com/syntax.

Guests

Show Notes

01:56 - What do you do?

06:04 - What is React Query?

24:19 - How does React Query use dev tools?

31:20 - What about React Context?

36:59 - Server-rendered components?

42:40 - Thoughts on static sites?

50:38 - What is the stack?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Feb 24, 2021
Hasty Treat - The Future of Testing with Cypress
20:04

In this Hasty Treat, Scott and Wes talk about the future of testing with Cypress — what it is, how to use it, and more!

Deque - Sponsor

Deque’s free axe browser extension helps developers instantly catch 50% of accessibility bugs while they code. It’s lightweight, easy-to-use, and has zero false positives. Get started for free at deque.com/axe.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:55 - What Is Cypress?

  • A visual testing studio that uses a jQuery-like syntax to test your application in browser.
  • Very modern testing solution.

07:36 - Used to be only Chrome

  • Now available for Safari, Firefox, Edge, etc.

??? - What frameworks is it for?

  • Literally anything that runs on a URL in the browser. Cypress just looks at a URL, executes the commands and then checks the results.
  • Can also run on ci/cd via a headless mode.
  • React component testing is experimental.

10:58 - Automation

  • Cypress studio new feature that writes tests for you.

12:37 - Data

  • Intercept + Fixtures or through plugins

15:01 - Cost?

  • It’s free!
  • There is a paid product called Cypress Dashboard that allows you to record tests long-term.

Links

Tweet us your tasty treats!

Feb 22, 2021
Potluck — Do titles matter? × Should clients pay for plugins? × Can I debug my baby? × How we prepare for Syntax × Deno × Learning things quickly × More!
57:00

It’s another potluck! In this episode, Scott and Wes answer your questions about job titles, clients and freelancing, debugging, the creative process behind the Syntax podcast, Deno, how to learn things quickly, and more!

Prismic - Sponsor

Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Cloudinary - Sponsor

Cloudinary is the best way to manage images and videos in the cloud. Edit and transform for any use case, from performance to personalization, using Cloudinary’s APIs, SDKs, widgets, and integrations.

Show Notes

01:17 - Do either of you have a pattern that you follow for rolling back Promise.all rejections? I am looking for an elegant way of reversing any promises that may have resolved before one was rejected. For instance, any db writes or 3rd-party webhooks that were created during the sign-up flow, but then need to be removed if one of the promises was rejected.

04:51 - I’ve been doing a bunch of client projects lately that use Gatsby with the WordPress API. I have the clients set up a hosting service for WordPress and a Netlify account connected to a GitHub repo on my account for Gatsby. What I’m struggling with is the idea of having to keep these repos on my GitHub account for as long as these sites are live. But it doesn’t seem all that sensible to have these non-technical clients also set up their own GitHub account that they grant me access to for building these projects. Do you have any suggestions?

08:45 - Hey guys! Been listening to the podcast since I was starting out and it has been super helpful, entertaining, and hilarious. Two-part question. First, when would you consider a dev “full-stack”? I work for a small company that does WordPress, GraphQL, Node, React, TypeScript…lots of variety. I was hired as a front-end dev, but have since done work in PHP and Node, and even my boss has assured me I do full-stack work. However, I am not being paid as a full-stack dev. Can’t figure out if this is because I work part-time (I have a baby) or some other reason. Should I be asking for a raise as a part-time employee?

12:43 - When working freelance for a client, and you need to purchase something, for example the CPT UI plugin or something like WP Migrate DB Pro to help you build the site, do you either pay for it yourself and add it to the clients invoice at the end? Or do you ask them to pay for it when you need it? So many small “gotchas” I’m needing to get over!

18:02 - I just had a baby girl 4 months ago. When she is crying I sometimes catch myself trying to debug her to find out what is wrong. My wife thinks I am weird, but I guess I am just in the habit of trying to fix problems. Have you ever experienced this?

22:17 - How do you prepare for the Monday and Wednesday podcast? What is it like, and what is the creative process behind it?

29:03 - How would one go about using JavaScript to load all images from a folder in order to render them dynamically on a page? I looked around and only see answers using jQuery and PHP. In the end I want my client to be able to drop images into (or remove them from) the images folder and the site would just populate the image slider with all the images. Is this problem solvable with JavaScript, or is it time to learn something new?

35:26 - I have a side project with a Node backend that sends out reminders to signed-up users about various deadlines that they opt-in to. It started out pretty small but as the user base is now in the thousands, I’m worried that my reminder send functionality won’t be able to keep up with the increasing volume. It’s basically just a daily CRON job that loops through users and finds the different notifications to send out - either through Twilio or Postmark. Is there a more efficient way to perform large CRON jobs such as this? Curious how each of you guys would tackle this problem.

42:29 - Hey guys, great overview episode on Deno (ep 322). This got me thinking, again, of the proliferation of tools and technologies in our industry and ecosystems. Say we’ve already “identified” the technology or tool and now we need to get familiar. As course designers constantly exploring new tools and technologies, what are some ways you can most efficiently and productively grasp actionable understanding (i.e. shortest route to Neo’s “I know kung-fu”)? And can you share any “hacks” or “pro-tips” that can help surmount that initial learning curve and tech-stack fatigue?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Feb 17, 2021
Hasty Treat - TypeScript Compilers and Build Tools
22:29

In this Hasty Treat, Scott and Wes talk about the differences between compilers and build tools in TypeScript.

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:38 - What is a TypeScript compiler?

07:49 - Babel

  • Transpiler
  • It doesn’t do typechecking
  • New JS features that aren’t in TypeScript yet

10:22 - SWC

13:03 - Deno

13:36 - Surcase

14:46 - ESBuild

  • Compiles, but doesn’t do any type checking
  • Fastest

17:39 - What about bundlers?

  • Parcel
  • Snowpack
  • Webpack
  • ESBuild
  • When might you still need a bundler?
    • To handle different types of files that are non-standard
      • Like importing CSS and images
  • Treeshaking
  • Smaller bundle files
    • Typescript can concatenate to a single file, or all .js files, but smaller / smarter bundles still need a tool for that
  • Polyfills
    • Typescript does convert to syntax, but will not polyfill features
    • Something like Promise
      • Syntax can be transpiled to old code
      • Methods like allSettled aren’t

Links

Tweet us your tasty treats!

Feb 15, 2021
We Review Resumes, Websites, and Online Presence
01:07:39

In this episode of Syntax, Scott and Wes review resumes, websites, and online presences, and discuss pros and cons, what you should focus on, and more!

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Linode - Sponsor

Whether you’re working on a personal project or managing enterprise infrastructure, you deserve simple, affordable, and accessible cloud computing solutions that allow you to take your project to the next level. Simplify your cloud infrastructure with Linode’s Linux virtual machines and develop, deploy, and scale your modern applications faster and easier. Get started on Linode today with a $100 in free credit for listeners of Syntax. You can find all the details at linode.com/syntax. Linode has 11 global data centers and provides 24/7/365 human support with no tiers or hand-offs regardless of your plan size. In addition to shared and dedicated compute instances, you can use your $100 in credit on S3-compatible object storage, Managed Kubernetes, and more. Visit linode.com/syntax and click on the “Create Free Account” button to get started.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

04:32 - Why does an impression matter?

  • All of this stuff comes together to work in your favour when you are hunting for a job.

05:14 - What goes into an online presence?

  • Twitter
    • Share what you know
  • Online website
    • Design
    • Messaging
    • Effort
    • Personal life
  • Blog
  • Resume
  • It’s not about being popular, it’s about relationships and positioning yourself as an expert. People mix up their hatred for “influencers” with having a rock solid network of people who they can help and who can help them.

07:25 - A couple stories

  • @HenriHelvetica
    • You don’t know how many times I’ve tried to convince (esp people of color) to try a lightning talk. This stuff gets you to research, and you might even make discoveries.
    • I know it’s a step out of the comfort zone for many, and that’s cool, but don’t be upset at those who go for it, and land some work.
    • I do (did) lunch n learns @ Juno, and I started to end them w/ a post bootcamp life — tell them what it’s like, and to be active on twitter (share what you read, what you’re working on, listen to others, follow great devs, etc.). One person DM’d me to tell me she took that in and decided to try. “I never forgot that time you gave a talk at HY and one thing that you emphasized was to make your voice known on Twitter. You said that this has opened many opportunities for you and that’s been happening to me more and more recently. I never set out to build my account but the growth has indeed happened and along with it, opportunities from people I’ve never expected.”

09:40 - Ash Connolly

  • https://ashconnolly.com/
    https://www.notion.so/ashconnolly/Ash-Connolly-321c5a65350f477897ed025f4daa1bb0
  • Software Engineer
  • Using new tech with high end clients
  • Review
    • Pros
      • Clean, simple design, but doesn’t feel like it’s missing something
      • Animations are a nice touch
      • Easy to see their work (e.g. photo, title, short paragraph, link)
      • Testimonials is good, I might change the word testimonials, but that’s small
    • Cons
      • Nitpick - footer emphasis color looks like a link
      • HTML is good, but missing some semantic tags like
        ,
        ,
        , too reliant on divs
    • Resume
      • Pros
        • Good idea of what Ash has accomplished (e.g. just by reading his summary, I’m left feeling impressed because of his client base and his extras like writing for FreeCodeCamp and Marvel Blog).
        • Work history - good way of describing what he did. “Carried out performance audits and site speed improvements”
        • Links to writings and side projects
      • Cons
        • Lists Brad Frost as someone who shared his post. This feels a little weird.
        • Nitpick - CSS & CSS3, HTML & HTML5 on the languages. In 2021, just put HTML & CSS.
        • Work history - WAY way too much. Keep it to one sentence and three or four bullet points for each job. Ain’t nobody gonna read all that.

20:48 - Matthew Bidwell

  • https://matty.dev/
  • Backend dev
  • Not focused on dev
  • Review:
    • Banging domain
    • It’s clear who he is, what he is about
    • Links to Twitter, Github and LinkedIn right away
    • Blog posts showing he knows what he’s talking about

24:42 - Leah Lundqvist

  • https://leah.link
  • Review:
    • Pros
      • Fantastic aesthetics on site
      • Good lead paragraph
    • Cons
      • I’m not sure what work she actually does
      • Github pages are great for digging but not curation or showing off
        • Same with Twitter
      • For instance, I saw on Twitter that Leah made https://app.airport.community/app/rec1CbVg4J5aqScUQ but there was no mention of it anywhere else. A page full of the most recent / best projects with quick links is essential for anyone.
      • Don’t make them hunt for it
    • Twitter review:
      • Unreal
      • Pinned tweet

31:04 - Ismail Ghallou

40:18 - Jhey Tompkins

46:28 - Wes’ website

  • websos.com
  • Can’t view source
  • Whimsey
  • The right kind of animation
  • The link to the Syntax podcast has no indication that it’s going to take you offsite.
  • The background image is good, but not as good with a wide browser.
  • Custom scrollbars are nice
  • Overall the site is a delight

53:25 - Scott’s website

  • scotttolinski.com
  • Font’s a little big
  • Link to documentary is great
  • Bio should include links
  • Page animations are great
  • Showing personal life / interests is good
  • Super fast

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Feb 10, 2021
Hasty Treat - Keyboard Events Are Surprisingly Interesting
22:26

In this Hasty Treat, Scott and Wes talk about keyboard events and some of the fascinating things you can do with them!

Prismic - Sponsor

Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:04 - The Events

08:02 - Event meta data

  "key": "c",  "keyCode": 67,  "which": 67,  "code": "KeyC",  "location": 0,  "altKey": false,  "ctrlKey": false,  "metaKey": true,  "shiftKey": false  
  • Others:
    • .locale
    • .repeat

16:46 - Media keys

18:32 - When might you use key codes?

  • Space bar to stop a video on a page
  • Building a game
  • Making a web app feel more like an app

Links

Tweet us your tasty treats!

Feb 08, 2021
TypeScript Fundamentals
58:31

In this episode of Syntax, Scott and Wes talk about TypeScript fundamentals — what it is, how you use it, why people love it so much, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Cloudinary - Sponsor

Cloudinary is the best way to manage images and videos in the cloud. Edit and transform for any use case, from performance to personalization, using Cloudinary’s APIs, SDKs, widgets, and integrations.

Show Notes

What is TypeScript?

03:12 - Types?

  • What are types and why should you care?
  • JS is a typed language, it’s just not strongly typed
    • JS does not care about reassignment of a variable to a new type
    • Does not care about your types, but they do exist

06:34 - The Fundamentals

  • You write your JavaScript code, but each time you create a variable, function, parameter, you “type it” — which means you describe what that data will look like.
    • Create a variable: Will it be a string? A number? A custom type of show?
    • Create a function: What params does it take? What type are they? What does it return?
  • Types allow your code to know if there are type errors that would present themselves to the user silently. These are small errors that can be compounded and go unnoticed.
    • This can allow you to prevent shipping code that has these errors by checking your code.
    • Some of the biggest benefits here come via errors in your text editor

13:30 - Explaining the types

  • You can create your own types
  • Strings
  • Numbers
    • We only have numbers in TS, no floats/ints
    • We do have BigInt though, but not something most people will use
  • Arrays
    • Will be a list of another type
  • Unions
    • This type will be one of the possible options
    • String of DRAFT PUBLISHED or ARCHIVED
  • Intersections
    • An intersection type combines multiple types into one
  • Objects
    • These are custom types where each property is its own type
  • Any
    • Explicit any
    • Implicit any
  • Language types
    • These things are technically just Objects, but they have their own types
    • Dates
    • Timeouts
    • DOM Elements / Nodes
  • Void
    • When a function returns nothing — usually used with side effects like click handlers
  • Enum
    • A set of named constants
      • Used when you have a select amount of values — I like to think of these as the select lists of TS
      • String unions are also used for this same thing

30:28 - Inference

  • Automatic detection of types
  • Typescript will try to infer your types based on their definition
  • Not every type can be inferred, leading to implicit anys and the need for explicit types

33:25 - Getting types

  • Most popular packages already have types — you install them like npm i @types/whatever
  • If a package doesn’t have types, you have to create them yourself, which can be annoying
    • MakeTypes
    • Console log a JSON.stringify(obj), and pipe it in
  • Node has types
  • Vanilla JS has types, for the language and all of the DOM - HTMLInputElement
  • React has types
  • Typing Node modules that don’t have types

Overall benefits

40:39 - Type hinting

  • With TS and your editor (VSCode) you’ll get more information about your code as you type it — allowing you to know exactly what things expect
    • This seems like a small deal but in practice leads to being much more efficient

42:50 - Refactoring

  • Rename a function, type, or variable and it will be updated everywhere in the project!
  • Moving a function to a new file is actually part of TypeScript
  • Drag + Drop file, update imports

48:10 - Compiling

  • TSC vs Babel / Esbuild
  • Only TSC type checks
  • Compiling TS with babel will not allow you to break the build on type errors, you’ll need to run TSC in coordination or in the CI/CD

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

  • Scott: ESM & Snowpack - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Feb 03, 2021
Hasty Treat - New Level Up Tutorials Site
25:52

In this Hasty Treat, Scott and Wes talk about the new Level Up Tutorials website — some of the new tech powering the site, behind-the-scenes decisions, previous iterations, and more!

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

02:55 - Previous iterations

05:30 - Big choices

  • No Babel up and down the stack
  • UI
    • Mostly unchanged — React + Styled Components + SCSS
      • Moving more to SCSS, CSS vars
      • Build and dev done via Snowpack
        • 50ms hot reloadin’
        • Mega fast development workflow has been a huge plus
        • Errors in the UI via Snowpack
        • Wrote a custom GraphQL importer plugin
  • API
  • Codegen
    • GraphQL code gen to create everything we need for a fully typed codebase
    • Auto-generated React Hooks
  • Hosting
  • CLI
    • Custom avalanche CLI that removes the guesswork and makes bulk operations easy
  • Caddy server for easy leveluptutorials.dev in local environments
  • Testing

Links

Tweet us your tasty treats!

Feb 01, 2021
The Deno Show
59:49

In this episode of Syntax, Scott and Wes bring you the long-awaited Deno show — what it is, what it replaces, how you can use it, and more!

Deque - Sponsor

Deque’s free axe browser extension helps developers instantly catch 50% of accessibility bugs while they code. It’s lightweight, easy-to-use, and has zero false positives. Get started for free at deque.com/axe.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Mux - Sponsor

Mux Video is an API-first platform that makes it easy for any developer to build beautiful video. Powered by data and designed by video experts, your video will work perfectly on every device, every time. Mux Video handles storage, encoding, and delivery so you can focus on building your product. Live streaming is just as easy and Mux will scale with you as you grow, whether you’re serving a few dozen streams or a few million. Visit mux.com/syntax.

Show Notes

02:13 - What is it?

  • A secure runtime for JavaScript and TypeScript
  • Built by Ryan Dhal — same guy who initially built Node.js
  • API is JS or TS out of the box

04:55 - Does it replace / what is it in relation to?

  • Node
    • It’s a replacement for Node.js
  • Express
    • Web Server Frameworks like Express will run on Deno, but Express itself won’t currently run because they are build on Node APIs
    • https://github.com/oakserver/oak
  • Serverless
  • React / Vue / Svelte
    • These things are just JavaScript, so they should/will work in Deno. Deno will replace your tooling. More involved things like Next.js that require Node APIs won’t work until.
    • https://alephjs.org/
  • SSR
    • It comes with all browser APIs out of the box!
  • Fetch
    • Window + Add Event listener
  • Webpack / Parcel / Snowpack
    • Deno is a bundler
  • Prettier
    • Deno is a formatter
  • TSC
    • Deno is a TypeScript compiler and runtime
  • ESLint
    • Deno is a linter
  • Jest
    • Deno is a Test Runner
  • NPM
    • Deno is a package manager - it pulls in packages from URLs

14:51 - Modules

  • ES modules from the start
  • Modules are loaded from URLs
  • Why? No package registry to worry about
  • This is how the browser works
  • Import from URL
  • You can also specify it in the json file
  • https://github.com/oakserver/oak/blob/main/deps.ts
  • https://deno.land/
  • Fetch is built in!
    • It’s a browser API, but who cares?!
  • Browser APIs
    • window.add event Listener
    • Deno is event based, like the browser

20:10 - A nice standard library

22:14 - WASM

  • Deno can run WASM with the same APIs that the browsers can
  • Node is doing this too (experimental)

25:06 - Multi-threading with Web Workers

26:13 - Speed

29:44 - Security

33:39 - Run from anywhere

37:43 - Async out of the box

  • Everything is based on async + await / promises right away. No callback APIs, no promise wrapping.
  • Top level await

38:53 - Node Compatibility

  • Node APIs are being filled
  • This means if a browser package ships an ES module of a package, we can just import it

42:21 - What we’ve built

46:54 - Hosting

48:29 - Final thoughts

  • Scott: Now is a great time to learn, but don’t put any crucial work into that space unless you are ready to write everything. Libraries are still being written and evolved. Docs are still sparse. Many things didn’t work on first try. I had to read lots of source.
  • Wes: If You know JS or TS, you are already 90% there.
    • The package ecosystem isn’t there yet
    • Battle-tested

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Jan 27, 2021
Hasty Treat - The New AVIF Image Format Is Unreal
20:38

In this Hasty Treat, Scott and Wes talk about AVIF — what it is and how you might use it!

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:10 - What is AVIF?

  • AVIF is derived from the keyframes of an AV1 video
  • Royalty free (big deal)
  • What about WebP?
  • Basically half the file size of a WebP for free, which was already about half the size of a jpeg
  • It’s a lossy format — ie it inherently will degrade the image
  • https://jakearchibald.com/2020/avif-has-landed/
  • No animation

10:53 - How to implement

Tweet us your tasty treats!

Jan 25, 2021
Potluck — $100k Dev Jobs × Sponsored Blog Posts × How To Keep Your Skills Up To Date × Libraries vs Custom × Dev Tools × More!
01:04:03

It’s another potluck! In this episode, Scott and Wes answer your questions about VS Code, JavaScript, $100k-per-year dev jobs, sponsored blog posts, how to use dev tools, how to keep your skills up to date, and more!

Prismic - Sponsor

Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Linode - Sponsor

Whether you’re working on a personal project or managing enterprise infrastructure, you deserve simple, affordable, and accessible cloud computing solutions that allow you to take your project to the next level. Simplify your cloud infrastructure with Linode’s Linux virtual machines and develop, deploy, and scale your modern applications faster and easier. Get started on Linode today with a $100 in free credit for listeners of Syntax. You can find all the details at linode.com/syntax. Linode has 11 global data centers and provides 24/7/365 human support with no tiers or hand-offs regardless of your plan size. In addition to shared and dedicated compute instances, you can use your $100 in credit on S3-compatible object storage, Managed Kubernetes, and more. Visit linode.com/syntax and click on the “Create Free Account” button to get started.

Show Notes

02:01 - Not so much a question as me saying thanks! I started web dev as a bartender/college dropout in 2017 when Syntax was pretty new. I rarely miss an episode, and this year I’m starting my first >$100k JS job! Your show has always been fun, kept my attention in the realm of web dev, and helped guide my interest — I think it has been extremely valuable to my career so far, and I look forward to more.

04:10 - How do I know when to pull in a package rather than write similar functionality myself? And is there a rule for when enough is enough, in terms of having too many packages? What I’m most concerned about is bundle size. It doesn’t seem to take a lot of packages before Webpack notifies you about large bundle sizes, so what would be best practice?

11:27 - What is your opinion of doing a sponsored post or guest post on your own site? And if you’re in favor, what sorts of terms, payment, etc. would you outline or charge for it?

18:20 - Do you have/know of any resources for those that want to learn more about selling digital products through e-commerce? The sources I’ve found (Scott’s e-commerce/Gatsby courses & Next.js commerce demo page) focus more on creating stores that sell physical products. Are there any gotchas when selling digital vs physical?

22:10 - Do you have any tips for keeping your skills up to date while taking a break from work? I’m a frontend dev currently six months into my year-long maternity leave and I feel like my brain has turned to soup. I listen to podcasts and read blog posts but it never feels like enough. Time and energy are very limited for me to work on personal projects!

25:11 - I remember you guys saying something about making your own UI component libraries. Do you use some CSS libraries like Tailwind or even Bootstrap or others for this, or do you write your Sass/CSS from scratch?

30:52 - Would be interested to hear some of the common ways you use dev tools (chrome dev tools, react dev tools, redux, etc.). I feel like there is a lot of information in there that I am not utilizing properly to help figure out problems during development. Would be cool to hear an overview of how you use the different tabs, some of the most commons things to look for, etc.

35:20 - I am graduating from a bootcamp next month and I feel severe insecurities/imposter syndrome. For whatever reason, I freeze up when it comes to coming up with code or writing things myself, mainly in JS. When in class, watching tutorials, following along, or viewing other people's code, I can tell you exactly what is going on, why it is being done, and I can change and add things and explain them. But when it comes to starting from a blank slate, I freeze, as if everything I know about programming has gone out the window. Do you have any advice as to how to get past this hurdle? I feel like at this point I shouldn’t be feeling like this, but maybe this is normal?

40:36 - Do you think developers have a responsibility to help reduce CO2 emissions caused by the web? A BBC news article stated that “HD video streaming on a phone generates about eight times more in emissions than standard definition (SD)” and noted that on a small screen, the viewer might not even notice the difference. Should the developer limit the resolution available to mobile devices, or should they let the end user choose?

47:53 - I was hoping that you guys could give me, and other listeners, advice on “knowing when you’ve bitten off more than you can chew”? Often I’ll be working on a project for fun, or possibly building out my portfolio, and I’ll continue to get excited about features that I’d like to add to my current app or what have you. At first glance, the ideas or features seemed reasonable enough to tackle, but hours later, I’ll find myself stuck, realizing that I’m in over my head, as I’ve tried to take on something that I’m not yet experienced enough to work with, or I’m lacking the man-power to complete it in a timely manner. At the same time, I want to challenge myself so that I can grow, but sometimes I feel that I’m not using my time wisely. So my question to you is, where is the line between challenging ourselves to take on new and difficult tasks and scaling back our current work to make it more approachable and less overwhelming?

55:01 - What is the right use-case for a database, and what is the right use-case for a headless CMS? Is a headless CMS just a database + a user-friendly way of entering data into that database? Is there a secure way of querying Sanity directly from the frontend if I have data that I want to be only available to logged-in users?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

  • Scott: All Courses - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Jan 20, 2021
Hasty Treat - CSS Typography and Systems
26:03

In this Hasty Treat, Scott and Wes talk about CSS typography, and how to quickly get up and running with type systems.

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

05:00 - How do you define type at the start of a new project?

15:03 - How do media queries and screen sizes affect your system?

16:58 - Why are systems in type important?

20:21 - How do you design a type system?

  • Scott’s type system:
 /* Font Sizes */   --baseFontSize: 1rem;   --baseNavSize: 0.64rem;   --smallFontSize: 0.8rem;   --smallestFontSize: 0.512rem;    --xtra-big-ass-heading: 3.052rem;   --xtra-heading: 2.441rem;   --heading-1: 1.953rem;   --heading-2: 1.563rem;   --heading-3: 1.25rem;   --heading-4: var(--baseFontSize);   --heading-5: var(--smallFontSize);   --heading-6: 0.64rem;   --heading-7: var(--smallestFontSize);  

Links

Tweet us your tasty treats!

Jan 18, 2021
Reactathon LIVE
48:56

In this episode of Syntax, Scott and Wes are coming at you live from Reactathon with audience-favorite segments including All I Want for Christmas in React, JS or Nay-s (or Both), Overrated / Underrated, Hot Take Tweets, Listener Questions, and more!

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Magic Bell - Sponsor

MagicBell, the embeddable notification inbox - magicbell.io. Use the coupon code SYNTAX to get a 20% discount if you sign up in the next two weeks.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

04:17 - All I Want for Christmas in React is:

  • Suspense for data fetching
  • On mount animations
    • Unmount for me
  • Single file components
  • preventDefault shortcut
  • Input to state mapping

09:45 - JS or Nay-s (or Both)

  • Shout out to Pigeonhole
  • Graphene - 1) Carbon atoms organized in a hexagonal lattice, or 2) An opinionated Python library for building GraphQL Libraries in Python?
  • Floodlight - 1) A super simple syntax highlighter for XHTML documents, or 2) a large light used to illuminate dark outdoor spaces?
  • Toy Machine - 1) An early 2000s skate brand, or 2) A Vue-based GUI for creating state machines?
  • Joplin - 1) A free, open-source note taking and to-do application based on markdown, or 2) A city in the northwestern corner of Missouri?
  • Noco - 1) A JavaScript library that connects to No Code tools including bubble.io, or 2) A smart car battery maintainer & charger?
  • Innr - 1) A smart lightbulb, or 2) A CSS in JS library for selecting parent selectors?
  • Cabkoma Strand - 1) A thermoplastic carbon fiber composite rod used in modern buildings, or 2) A Redux-like state management library for Svelte?
  • Sputnik V - 1) Code name for the upcoming WordPress release with built-in headless CMS mode, or 2) A non-replicating viral vector COVID-19 vaccine?

18:44 - Overrated / Underrated

27:49 - Hot Take Tweets

34:34 - Listener Questions

  • Q: If you recently started doing web dev work, which career path would you choose - startup, FANG, or freelance?
  • Q: TypeScript all the things?
  • Q: What do you do to keep up with the latest and greatest changes in tech - front-end libraries, new languages, etc.?
  • Q: Can you share some exclusive BBQ tips?
  • Q: What do you expect of Blitz.js in the next few years?
  • Q: What’s the first node module you install in a brand new React project besides React itself?
  • Q: Thoughts on using languages other than JS and TS with React like Kotlin?
  • Q: Do you have an approach for optimizing hi-res images that are stored in your back-end, like S3 for your Gatsby website?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

  • Scott: All Courses - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Jan 13, 2021
Hasty Treat - A Podcast About Nothing
15:01

In this Hasty Treat, Scott and Wes talk about nothing — null, undefined, void, false, 0, ‘’, NaN, [], {}, never — all sorts of values that could mean the things that do not exist.

Prismic - Sponsor

Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:35 - Undefined

  • Implicitly nothing
  • A variable declared, but not set is undefined

04:25 - Null

  • Explicitly nothing

04:41 - Null vs Undefined

  • Null has a value of nothing
  • Undefined does not have a value
  • You can set variables to either
    • If you want to set a score variable to nothing, set it to null
    • If you want to un-set a value, set it to undefined
    • == will check if a value is either null or undefined

05:35 - Void

  • In Javascript
    • You can pop void in front of calling a function and it will return undefined (even if that function returns a value)
    • I’ve seen it on links that go nowhere (don’t do this — use a button)
    • To prevent an arrow function from leaking
    • onSubmit="javascript:void()" is a quick-n-easy prevent default on forms
  • In Typescript
    • Void is when you don’t care about what is returned from a function, or if nothing is returned
    • A click handler that goes off and does stuff (side effect) can return void

09:15 - Never (in Typescript)

  • Some functions will never return:
    • Functions that throw errors
    • Functions that have infinite loops
    • Also, unreachable variables have a type of never
      • if(true == false) { let var = 'this will never be true'; }

11:05 - Falsy values

  • 0, -0, 0n
  • false
  • ‘’ (empty string)
  • Empty array
    • Is a value
    • Its .length can be falsy
  • Empty object
    • Is a value
    • Its object.keys(object) length can be falsy (0)

Tweet us your tasty treats!

Jan 11, 2021
2021 Predictions
54:08

In this episode of Syntax, Scott and Wes talk about their predictions for 2021!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Linode - Sponsor

Whether you’re working on a personal project or managing enterprise infrastructure, you deserve simple, affordable, and accessible cloud computing solutions that allow you to take your project to the next level. Simplify your cloud infrastructure with Linode’s Linux virtual machines and develop, deploy, and scale your modern applications faster and easier. Get started on Linode today with a $100 in free credit for listeners of Syntax. You can find all the details at linode.com/syntax. Linode has 11 global data centers and provides 24/7/365 human support with no tiers or hand-offs regardless of your plan size. In addition to shared and dedicated compute instances, you can use your $100 in credit on S3-compatible object storage, Managed Kubernetes, and more. Visit linode.com/syntax and click on the “Create Free Account” button to get started.

Show Notes

02:06 - ESM

  • Scott: It’s going to be big
  • Wes: Everything going forward should be ESM

05:44 - Wes: Remote work will grow

  • Whole new talent pool opens up
  • Whole new living situations open up

08:23 - Scott: Deno will grow

11:12 - Wes: Tooling will fade away

14:14 - Scott: Greater usage of other languages to build Javascript

19:35 - Wes: Programming communities will gain traction

23:25 - Scott: More WASM

27:19 - Typescript

  • Wes: Typescript will become more popular
  • Scott: Tooling will get better

29:37 - React

  • Scott:
    • Scoped CSS in React will evolve
    • SSR and hydration will be better
  • Wes:
    • People will fall out of love with React
    • Or more magic will get added to React

32:52 - Scott: More web component frameworks

33:17 - Scott: Markdown and mdx-like frameworks will skyrocket in use

33:59 - Wes: Gatsby

35:24 - Scott: AR tech will grow

36:38 - Wes: AI will become accessible

38:43 - VS Code

  • Scott:
    • It will continue dominating
    • Cloud and shared coding env will become better
    • Figma
  • Wes:

40:18 - CSS

42:39 - Serverless

  • Scott:
    • Ease of use will get better and better
  • Wes:

45:30 - Wes: Enterprise Jamstack will become a thing

46:30 - PWAs might become more popular

  • Apple will never want you to go around the app store

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Jan 06, 2021
Hasty Treat - Hyper Productivity with Keyboard Shortcuts + Window Management
26:49

In this Hasty Treat, Scott and Wes talk about keyboard shortcuts, window management, and how to stay productive.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:54 - Karabiner-Elements

06:11 - Better Touch Tool

13:55 - ScreenFlow

17:52 - VS Code Shortcuts

21:20 - Text Expander

23:00 - Clipy

Links

Tweet us your tasty treats!

Jan 04, 2021
2020 In Review
01:06:48

In this episode of Syntax, Scott and Wes talk about 2020 in review — predictions, hits and misses, hot tech, what they worked on, and more!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Show Notes

01:43 - Predictions from 2020

  • CSS Subgrid
  • CSS Houdini
  • CSS features not supported in older browsers yet
    • Scrollsnap - IE 11 and up. Lot’s of mobile issues.
    • position:sticky - no IE at all
  • NPM tink
    • Installer-less npm
    • Load packages at runtime into a shared cache across all projects
    • Intelligently download the parts you need
  • Yarn PnP / Yarn 2
    • Hard links to eliminate package duplication
    • Shared cache across all projects
  • Pika & Snowpack
  • Deno
  • React
    • Suspense in more libraries
    • Suspense for Server Rendering
  • Meteor
    • New ownership. v1.9 just dropped with lots of promise for future growth
  • Svelte 3
  • Vue 3
  • Apollo
    • 3.0 came out
    • Fine grain cache control
    • Hooks API
    • Custom logic over how things are read and merged
    • New dev tools
  • Next.js
    • 10.0 came out
    • Images!
  • Gatsby
    • A single useQuery (made possible by suspense)
  • Serverless
    • Going to get easier
    • Begin
    • Next.js / Now Functions
  • Headless CMS Thunderdome
  • Cypress
    • End to end testing
    • We got Firefox support in 2020
  • Modulz
  • Exports to JS component
  • Figma
    • Was already amazing in 2019
    • Constantly improving and adding new features
    • Can import from Sketch
    • Auto Layout
  • Spline

42:24 - What other tech was hot in 2020?

52:53 - Working from home

57:13 - Code libraries

59:25 - Personal / Professional updates

  • Hard year for productivity
  • Published more than 100 episodes of Syntax

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

  • Scott: All Courses - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Dec 30, 2020
Hasty Treat - Hosting + Web Services Pricing Explainer
26:40

In this Hasty Treat, Scott and Wes talk about how hosting and web services pricing works, and how to figure out what you need, and what you don’t.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

01:55 - Per minute

  • Spin up, do the work, spin down
  • Popular in serverless space
  • Can apply to other types of computing such as graphics, AI, machine learning, etc.

03:49 - By resources

  • Ram
  • CPU
  • Disk space

06:02 - Per “dyno”

  • These are Heroku Linux servers
  • You can add more dynos and make your app faster
  • They scale it for you

08:54 - By bandwidth

  • Sitting files
  • Inbound (ingress)
  • Output

12:24 - By DB calls or entries

  • Databases

14:04 - By users

  • This is more of a Sass thing, but can bleed into hosting too
  • Seat-based - Netlify does something like this

17:23 - By apps

  • Digital Ocean app platform
  • Each app is $5

21:22 - By “work”

  • Cloudinary does transforms on images
  • Mux

Links

Tweet us your tasty treats!

Dec 28, 2020
Potluck — New Macs × Podcast Statistics × E-commerce Testing × WordPress × Charging More × Learning Web Dev × More!
01:05:46

It’s another potluck! In this episode, Scott and Wes answer your questions about new Macs and web development, podcast statistics during COVID, is it still worth it to learn WordPress, dealing with imposter syndrome, and more!

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

00:47 - Roch Tolinski — You guys are doing a downtown job!!!

02:45 - Yesterday Apple announced their new Macs. They seem pretty sweet, but I was curious, what does this mean for the world of web developers? Will my current apps slowly stop being supported? Will things like brew and node and npm still work on those new machines? Would it be smart to start learning new programs to be prepared for the transition?

10:20 - Hey, great show! No really, great show. What is better for working at home/the office, iMac or MacBook Pro?

13:25 - What are your thoughts on Remix? And has your listenership gone down since COVID-19? I have heard that less people listen to podcasts now because they no longer commute.

19:33 - What is your approach to testing for e-commerce sites? I am about to launch a client’s online store and I’m sick with worry that a simple plugin upgrade will impact the store, and that I won’t know about it till a disgruntled customer complains.

24:57 - I’m getting into web development through college (just trying for an associate's to start) and I’m noticing the intro courses are very hard to get into. I’ve been self-teaching so I kind of feel like I’m ahead. The intro to computing logic (basic algorithms) teacher teaches very slowly and forces us to use an awful software called Raptor to create pseudo programs. I’ve been asking to actually use a language rather than the software but the teacher doesn’t have enough programming knowledge to grade the actual language assignments. I feel like this course is a step back from what I already know. I was just wondering if you guys have any tips on getting through the grueling “required” courses?

31:04 - So it's been announced now that Sapper will never hit 1.0, and instead Svelte core functionality is being expanded and Sapper is being deprecated. I know you all don’t have any inside info, but kind of wondering how Scott feels about this and what he’s doing with his Sapper site in the nebulous time between the big announcement and the release of the next Svelte version?

35:17 - I’m currently working through a full-stack Udemy course to make the switch away from my day job to try freelance web development. I want to start taking on some easier freelance jobs to help make a little extra money and build my portfolio, and I see WordPress recommended as an easy way to do this. My question is, would it be worth undertaking the learning process to pick up some PHP and learn basic WordPress development so that I can start freelancing now, or would I be better served just focusing on HTML, CSS and JS and waiting until I broaden my understanding of these languages before I start taking on some preliminary clients?

39:22 - If I plan to use WordPress as a headless CMS, how do I make sure the WordPress site itself is not publicly accessible? As far as I know, there’s no “API-only” mode for WordPress (like there is for, say, Rails or Laravel) and if I install a WordPress site on a server, it’s going to be discoverable online. I’d hate to have people find the WordPress API site and think it was my website — or for my static site to have to compete with my WordPress API for prominence in search engines. How do people ensure this doesn’t happen?

42:01 - If I have a Vue.js website running on WordPress, how could I dynamically insert Vue components from the WordPress backend (e.g. have a post that inserts a Vue.js poll component)? I don’t want to recompile every time.

44:24 - I’ve heard you mention previously that you have used WordPress to host sites in the past. I’m keen to learn how you have created your own themes for those sites. Did you write your own PHP, etc, or is there another way? I’m hoping to learn a bit more about developing for WordPress as it’s a skill I’d like to have in my back pocket, and would love to hear about any resources you would recommend for this.

47:51 - I’ve been a web developer for over 15 years. Unfortunately, I had to leave web development for personal reasons. I have a lot of great skills. Unfortunately, because I’ve been out of the game for so long my resume is full of holes. All the current experience I have is project-based or freelance-based. I do not have the ability to show long-term projects or anything stable on my resume. I’m trying to get my first job back in the field after my long absence. It has proven to be nearly impossible. I am listening to your Tasty Treat about certifications and certified education. I agree that certifications do not show actual skill. I also agree that just because I do not have longevity and consistency on my resume that I do not have the skills to pay the bills. How can I get my first job back in the field? I am working on small projects to highlight my skills but no one really seems to care. What would you do?

53:36 - I am currently in a food service job, but would love to move into the dev/design field. I have a year of experience in JavaScript, HTML, and CSS/Sass, as well as React, Gatsby, Next, and Node ( thank you both for helping with those ). I have a small amount of experience with freelance web design and development, but feel I am greatly underselling myself ($150 for a Gatsby site built for a friend and less than $100 for a couple Fiverr gigs). I have seen freelance work out well for my friends and family, but I am terrified of having to find clients. I have a hard time valuing my work and fold when money is brought up. There is always a part of me that says to just shoot high and have them talk the price down, but I hate the confrontation. How should I go about finding my first $1,000 client and how can I show the client that my work is worth more without talking about the tech involved?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Dec 23, 2020
Hasty Treat - How Would We Script a PS5 Buying Bot?
16:20

In this Hasty Treat, Scott and Wes talk about the PS5 bot debacle, and how they would do it differently!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:12 - Scott’s strategy

  • Go to Reddit and refresh until someone posts a link and then GO GO GO
  • Don’t buy on sites that allow simple bots to work
  • TBH I don’t know how to code this type of bot and would prob end up accidentally buying a ton of stuff

05:06 - Wes’ strategy

  1. You need a way to find out of there is stock
    • Find out of there is an API endpoint you can hit (inspect element)
  2. If there is not, you’ll need to scrape the site.
  3. Fetch(url). text()
  4. Regex
  5. Cheerio
  6. Puppeteer (slower, easier to run)
  7. Save any data that you want in a database. Text-based database is great.
  8. Re-run the scrape every N mins
  9. When there IS a match you can:
    • Send a text message - Twilio
    • Send an email - Postmark
    • Try to fill out the form and submit it yourself
      • document.querySelector()

11:35 - Things that get in the way

  • Blocked IP
    • Use a VPN
  • Captcha or Cloudflare
  • Run it on your local computer
  • Use Puppeteer to get all cookies and headers

Links

Tweet us your tasty treats!

Dec 21, 2020
Serverless, Deno and TypeScript with Brian Leroux
01:00:04

In this episode of Syntax, Scott and Wes talk with Brian Leroux about severless, Deno, Typescript, and more!

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Guests

Show Notes

02:17 - What’s your background?

06:18 - What is serverless? Why is serverless so awesome?

14:07 - What changes from moving from an existing app to a new app?

16:15 - What is a cold start?

17:46 - What languages are suitable for serverless?

19:14 - What do you think about Deno?

24:23 - How does Architect work?

31:14 - What do you think about Typescript?

40:35 - Do you think websites should work without JavaScript?

44:51 - What about sharing code?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Dec 16, 2020
Hasty Treat - 300th Episode Tech Chat
25:42

In this Hasty Treat, Scott and Wes talk about their 300th episode and the tech behind it.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

02:15 - The things we tried

  • Zoom Breakout rooms
  • Hopin - $$$
  • Streamyard

04:24 - What we used

  • Discord
    • Room as a waiting room
    • Roles to give access
    • An a/v room where Wes and Scott were hanging
    • Lots of questions about Slack vs Discord
  • OBS
    • ObS to stream to three locations
    • ObS Streamlabs does this easily
    • Screen capture did a better job than using the video source from Discord
  • Youtube, Youtube, and MUX
    • Streamlabs can stream to 4 sources at once
    • MUX
  • How we got Syntax.fm/live to work
    • Create a new live stream on Mux via their UI
    • Get stream address and key
    • Point Streamlabs to it
    • HLS m3u8 address from Mux into a HLS react player
  • Looping intro video
  • Recording Audio
    • Wes recorded two streams locally
    • All audio on stream was piped through BlackHole on Scott’s machine
    • Used Loopback to pipe Discord audio into an input
    • Scott + Guest were on the same channel, possibly compressed
    • Sounded good!

Links

Tweet us your tasty treats!

Dec 14, 2020
Gatsby vs Next.js in 2021
01:09:22

In this episode of Syntax, Scott and Wes talk about Gatsby vs Next. A lot has changed in the last year — what are the differences, and do the recommendations from Syntax 120 still hold true?

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:34 - Server-rendered

  • Both do server rendered
  • Gatsby is gone at build time
  • Next is done at build and on deploy

05:26 - Static generation

  • getStaticProps()
  • getServerSideProps()

08:25 - Re-rendering pages

  • Gatsby can be re-rendered and re-deployed - any CMS lets you do this on only the pages that changed.
  • Gatsby-cloud
  • Next.js has the revalidate flag that will re-render when stale

18:54 - Data management

  • Gatsby has a built in GraphQL API feature with
  • Next.js has nothing - it’s not their problem. Use Apollo, or SWR, React Query, or redux, or whatever you want.

23:16 - Client-side data

  • Neither do anything, next.

26:33 - Dynamic Pages

  • List of 100 shoes, each one gets a page
  • List of four types of shoes: basketball, runners, casual, bowling, etc.
  • List of 10 colors: each color gets its own page.
  • List of 12 sizes, each size gets its own page.
  • Now it gets complicated when you do this:
    • Show me basketball shoes, in red, in size 5
    • 600 pages minimum
    • What about size 6+7?
    • Then you get into having to fetch data on the client side - but all your data is in GraphQL?!
    • The queries are different!
  • Gatsby will get “Hosted GraphQL”: https://twitter.com/kylemathews/status/1252803849775009794

30:41 - Routing

  • Neither do nested routing still
  • Both do folder based wrapper

34:50 - Hosting

  • Anywhere

35:54 - Images

46:20 - Server or Serverless

  • Gatsby - none. You can do it with Netlify, Begin, AWS, Gatsby doesn’t care.
  • Next.js - can do server with API routes. Can do serverless if you host on Vercel.

49:44 - SEO

  • Tags
    • Gatsby - Helmet
    • Next - Head
  • Sitemap
    • Plugin for both

49:55 - Plugin Ecosystem

  • Gatsby has lots of plugins that you install
  • Next.js has some too. Seems Gatsby is easier in this regard because plugins can manage and normalize data into the GRaphQL Layer.

53:10 - Auth

55:00 - E-commerce

  • Gatsby - options are mostly limited to Snipcart and Shopify like iframe drop in solutions where the majority of operations take place on another site and service.
  • Next.js - hey released a starter boilerplate that leans on an existing headless cart
  • https://rainierwatch.com/

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Dec 09, 2020
Hasty Treat - Why should I use React Hooks?
25:32

In this Hasty Treat, Scott and Wes talk about React Hooks and why you might want to use them instead of class components.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:54 - Decouple the UI from the logic

  • This wasn’t impossible with class-based components, but we started using HOC to do this.
  • With hooks, it makes you decouple what it does and how it looks.
  • Makes things like GraphQL code gen possible
  • Multiple pieces of state or functionality
  • Share commonly used functionality among projects and components

10:31 - Reduction in code

  • Lifecycle methods were often redundant. useEffect offers a way to prevent the duplication that can happen with component did update and did mount. This gives you a way to say, “Hey, run this code when these things change.”

13:30 - useEffect’s dependencies

  • These give you access to targeted control over side effects rather than just something changed.

14:15 - Easier to grok

  • What happens? When? Where? It’s mostly in the hook.

16:09 - Simplicity in usage

  • Thing, updateThing is more targeted than set state
  • Ref makes way more sense with useRef
    • String refs weren’t great, the function ref thing was obnoxious

21:07 - Gripes about Hooks

  • Naming is kind of odd
    • Vue did a better job with the names

Links

Tweet us your tasty treats!

Dec 07, 2020
Sickpickisode - 2020 Web Developer Gift Guide
57:30

It’s an entire episode of Sick Picks! In this episode of Syntax, Scott and Wes talk about their 2020 developer gift guide!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Show Notes

03:17 - Home + Cooking

13:27 - Games

17:16 - Tech

25:24 - Smart Home

33:22 - Desk Stuff

36:43 - Live Streaming / Sick WFH Setups

49:07 - Fitness

51:44 - Clothes

Links

Shameless Plugs

  • Scott: All Courses - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Dec 02, 2020
Hasty Treat - Writing Good Commit Messages
12:38

In this Hasty Treat, Scott and Wes talk about a system for writing good commit messages.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:46 - What are conventional commits?

04:55 - How do you keep track of all the details?

07:42 - How does it relate to SemVer?

Links

Tweet us your tasty treats!

Nov 30, 2020
Potluck - Frameworks vs Libraries × Debugging × CSS Modules vs Styled Components × Resumes × Stress Management × More!
01:08:26

It’s another potluck! In this episode, Scott and Wes answer your questions about frameworks vs libraries, improving your debugging skills, building a component library, CSS modules vs styled components, writing a good resume, stress management, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

01:27 - How do you implement WebRTC? Please tell us more about online streaming, screen sharing, data flow.

03:20 - Which JS library/framework do you think beginners might find the easiest to understand?

05:06 - How do you deal with different case types between different systems in your project? For example, I store records in a Postgres database which typically uses snake_case and then I render them with React, where props are typically camelCase. Is it better to convert the cases back and forth between frontend and backend or just pick one case and use it everywhere?

09:23 - My question is about the difference between a framework and a library. Should we have two separate words?

12:39 - How can I work on improving both my generic problem-solving skills and my debugging skills? I feel like there have got to be some more proactive things I can do to improve in these areas.

17:22 - I just listened to your podcast on making freelancing easier and enjoyed it. You talk about making your own component library. Do you have tips on how to store and manage a component library?

21:39 - What projects do you use Rust for, and do you have any ideas where Rust might be the thing to do when talking web projects?

29:10 - I’ve recently joined a great-paying full-time gig at a big enterprise-level company as a Senior Javascript Engineer (React, Node, etc). I’m humbled to be here - but at times the pace is slow, tickets are scarce, and I feel like I’m not able to really utilize or hone my skillset. I’ve been looking at potentially moving into contracting/agency work - the money seems comparable with the added benefit of new and exciting projects and having more control over them. Do you think contract work would be more fulfilling, or is crazy to leave a cushy job solely because I’m in a sense, bored?

35:26 - I’m currently working on a Next.js project and trying to decide which CSS system to use. What is your take on CSS modules? I know you like styled components a lot, but since there is built-in support for CSS modules with scoped CSS, I find it hard to motivate bringing in styled components. Am I missing something?

38:15 - Regarding Episode 290, you fielded a question regarding Angular and I appreciated your balanced response since I’m primarily an Angular developer at my job. If you could, would you please update the link to the Angular website to point to Angular.io (v10) instead of the AngularJS (v1) website?

40:43 - I really need advice on how to write a good resume, or any tips you may have for getting noticed in the hiring process with only a couple years of experience. I have been applying to many jobs as a front-end developer but I seem to get no response EVER.

47:17 - How do I dynamically assign subdomain/wildcard/slug dynamically during signup process with React and Node? (Like the way Freshbooks does — i.e tenant1.domain.comtenant2.domain.com, etc.)

48:44 - Wes, I’ve been taking your Mastering Gatsby course, and I’m loving the course so far. My only complaint would be I wish you added a module for CSS. I think it's just because I personally struggle with styling websites. Do either of you have any suggestions on how I can improve in that aspect of web dev?

50:35 - For web developers just starting out in freelancing/building e-commerce sites — from a business perspective, do you recommend we first 1) just code and worry about business stuff later? or 2) go through the government paperwork and be a sole proprietorship? or 3) incorporate (though this costs more)?

54:20 - What’s your approach for handling padding + margin with components?

57:43 - How do you back up sensitive files that do NOT get added to source control (env files, for example)? I have off-site computer backups, and I have .env files on a small thumb drive on my keychain. What do you do?

59:56 - Do you guys have stress management techniques? How do you cope with stressful situations at work, like unexpected tight deadlines?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

  • Scott: Animating Svelte - Black Friday Sale: Sign up for the year and save 50%!
  • Wes: Master Gatsby - Black Friday Sale: All courses 50% off!

Tweet us your tasty treats!

Nov 25, 2020
Hasty Treat - Client vs Server Data Validation
21:25

In this Hasty Treat, Scott and Wes talk about client- and server-side validation, and what each is used for!

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Show Notes

02:49 - Wes’ story

06:28 - What is the role of client-side validation?

  • Help the user input the correct data as they type it.
  • Show correct data in UI.
  • Show correct UI.
  • Just about all of these things are for the user’s benefit, and how they feel when using the site.

11:10 - What is the role of server-side validation?

  • Validate that all the data is correct before it’s saved to the database
  • Security first and foremost

15:03 - What process should a store follow to validate on the server?

  1. Check that correct types are coming in. Very easy with Graphql.
  2. Get current stock and price information from unique ids from the database.
  3. Confirm that this information is what the user is expecting — if the UI said the user will be charged $40, don’t charge them $50 just because of the updated info. In that case, send back to the user.

17:17 - What do you do if you don’t want people messing with your React state?

  • @fvilers/disable-react-devtools
  • if (process.env.NODE_ENV === 'production') disableReactDevTools()
  • We do this on LUT. Why? Because it’s a deterrent.

Links

Tweet us your tasty treats!

Nov 24, 2020
How to Run a Conference with Benjamin Dunphy
01:07:20

In this episode of Syntax, Scott and Wes talk with Benjamin Dunphy about running conferences — what to do, what not to do, and what makes a good online conference in a post-Covid world!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Guests

Show Notes

03:48 - How do you get started running a conference?

10:05 - Which conferences have you run?

18:05 - How do you get speakers?

23:21 - What about paying speakers?

28:26 - Speaker goody bags?

32:40 - You started your own catering company?

35:32 - How has Coronavirus affected the conference space?

43:06 - Should online conferences try to replicate live conferences?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Nov 18, 2020
Hasty Treat - CSS Grid Masonry (Grid Level 3)
17:03

In this Hasty Treat, Scott and Wes talk about CSS Grid Level 3 — why it’s such a cool thing and why they’ve been waiting for it for so long.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

04:33 - The spec

06:10 - How it works

  • masonry-auto-flow: next;
    1. It first puts all the items that are explicitly placed onto the grid. Items that you have a set start/stop value for are first put down.
    2. Then it takes the next item that it to be placed and finds a spot for it. This is different because with CSS Grid you normally have to place the next item on the next row or column.
    3. grid-template-columns and grid-template-rows can now be marked as masonry and this specifies which axis will be masonry.

09:06 - The implicit grid

13:25 - Thoughts

  • Power tools for layout in CSS — opens up a ton of possibilities and completes the functionality we use to dream of in CSS.

Links

Tweet us your tasty treats!

Nov 16, 2020
300th LIVE SHOW SPECTACULAR!
01:45:17

It’s the 300th episode of Syntax! To celebrate, Scott and Wes do a special live call-in episode with Syntax listeners.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Show Notes

03:30 - How is this going to work?

  • Ask a Potluck Question
  • Do a Sick Pick
  • Take on a Stump’d Question
  • Do a Shameless Plug

04:45 - Brad

11:54 - Brittany

16:43 - Jesse

23:44 - Henri

31:27 - Jason

  • Stump’d Question: What does “use strict” do and what are the benefits?

36:48 - Spence

41:33 - James

  • Potluck Question: How do you keep people engaged in a workshop?
  • Stump’d Question: What is the difference between the postfix i++ and the prefix ++i increment operators?
  • Shameless Plug: YouTube for Developers
  • Shameless Plug: James Q Quick YouTube Channel

54:24 - Austin

  • Potluck Question: Problems with ESLint, Prettier and VS Code playing nicely together
  • Shameless Plug: https://erickka.art/

66:21 - Dave

  • Sick Pick: mmhmm
  • Stump’d Question: What is the difference between the + and ~ sibling selectors in CSS?

78:56 - Gareth

89:51 - Ackzell and Lewis

  • Ackzell:
  • Lewis:
    • Potluck Question: What is your daily routine like, and you do you decide to prioritize projects?

Links

Shameless Plugs

  • Scott: Level Up Pro - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Nov 11, 2020
Hasty Treat - Bundlers in 2020
24:35

In this Hasty Treat, Scott and Wes talk about the state of bundlers in 2020 — Rome, Snowpack, Parcel, Webpack, Rollup, Vite, and more!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

02:39 - What is a bundler?

  • On the one hand, you can write HTML, CSS and JavaScript and open it in the browser
  • On the other hand, your build could be super complex

03:24 - What goes into configuring a bundler?

  • Templating language you use (Jsx, Pug, Vue, etc.)
  • JavaScript you write and compile to:
    • ES6/7/8/9
    • Typescript
    • CoffeeScript
  • Polyfills
  • Environmental variables
  • CSS loading
  • Image compression
  • Asset Chunking
  • Tree shaking

05:12 - Webpack

  • Hardest to learn, most used currently

07:38 - Rollup

  • Scott’s pick as best option for most features vs ease of use
  • Very powerful
  • Mmmr, tree shaking, plugins, esm

09:52 - Parcel

  • Scott’s simplicity winner pick
  • Easiest to get started with
  • It’s a bundler, but also a dev tool
    • Hot reload
    • Local server
  • Config is done via your package.json
  • Lots of plugins available

12:01 - NpmYarn and Yarn 2

  • It’s a dependency installer rather than a bundler

13:27 - Snowpack

  • Scott’s speed pick of the week
  • Uses ESM by default
  • Like Sonic after a triple shot of espresso
  • HRM
  • Perfect for dev builds, as well as production builds

15:51 - Isobuild / Meteor

  • Scott’s underdog pick of the litter

16:48 - Rome

  • Scott’s mystery pick of the week
  • New tool to do it all
  • Bundler, but also a linter

17:54 - Deno

  • Linter
  • Typescript formatter
  • Bundler (bundle into a single .js file)

20:44 - Let your tool take care of it

Links

Tweet us your tasty treats!

Nov 09, 2020
Voice Coding is Really Good with Josh Comeau
58:33

In this episode of Syntax, Scott and Wes talk with Josh Comeau about coding with your voice, accessibility, bootcamps, animation, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Guests

Show Notes

01:48 - What is your background?

04:33 - Coding with your voice

08:32 - How do you code for a living if you can only do it for a few minutes a day?

21:56 - How has it impacted your productivity?

22:46 - Is it easier with a typed language like Typescript?

26:05 - What about accessibility?

27:14 - How good is the eye tracker?

29:30 - What got you into animation?

35:29 - Favorite app for animations?

40:12 - Being a teacher

41:44 - Is it worth going to a bootcamp?

44:57 - Interactivity in teaching

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Nov 04, 2020
Hasty Treat - Certifications? Government Specified JavaScript Skills?
20:26

In this Hasty Treat, Scott and Wes talk about web dev certifications — are they worth it, or a waste of time?

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

02:12 - Certifications

05:30 - We have standards, and people move faster than standards.

  • jQuery moved faster than vanilla JS
  • Typescript is sometimes preferred over regular JS
  • We have universities that offer web developer certs and many of them are a joke
  • The point is that programming is the wild west — it’s far too broad and moves far too fast for us to try and fit it in a box

10:28 - Do certifications mean anything?

14:30 - How do you know if you have enough skills (when you’re job hunting)?

19:04 - Some jobs do require a certification

  • AWS
  • Google

Links

Tweet us your tasty treats!

Nov 02, 2020
Spooky Web Dev Stories — Part 2
01:02:39

In this episode of Syntax, Scott and Wes are back for another episode of spooky web dev stories — listener-submitted stories about web dev gone wrong.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Show Notes

03:28 - Jack Rhysider Story

06:28 - Dirty Dicks JSON

08:23 - CMS Disaster

10:58 - Oh No Hotel

11:19 - FTP

12:19 - Push Notification Hell

13:16 - DVD Nightmare

15:15 - Bad Words Again

16:23 - Mo Money

17:01 - Bass Ackwards

18:17 - Taxi Coding

19:36 - Bad Env

21:30 - Login As

21:50 - Email Subscribers Plugin

22:33 - 1 in 300 Chance of the C-Word

24:24 - Production Target

26:12 - A Happy SEO Ending

28:26 - Just Oof

29:48 - I’ve Fallen and I Can’t Get Up

30:54 - Crypto

32:34 - rm -rf

33:42 - Never Deploy on Fridays

35:31 - Million Dollar Scramble

36:22 - Deleting Production

37:11 - 500,000 Concurrent Problems

39:14 - Deleting a Government Website

40:36 - You Ruined the Surprise!

45:23 - Mr. D Hole

46:48 - One Expensive Race Condition

48:43 - Yikes

51:11 - Always Be Closing

51:44 - Adidas - All Day I Delete A Site

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

  • Scott: Level Up Pro - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Oct 28, 2020
Hasty Treat - Temporal Date Objects in JavaScript
16:42

In this Hasty Treat, Scott and Wes talk about Temporal Date Objects in JavaScript — a WICKED AWESOME API for working with times and dates.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

05:11 - Temporal Now

  • You can get now
    • Temporal.now.___

07:58 - Temporal Instants

  • Temporal.Instant represents a fixed point in time, without regard to calendar or location.
    • Most common way to show it is nanoseconds since unix epoch.
    • Can be formatted a few different ways.

09:59 - Calendar

  • Support for different types of calendars

11:43 - Durations

  • Temporal.Duration
    • There are .from and .add and subtract() methods

12:47 - Other interesting parts

  • Timezones
    • Temporal.ZonedDateTime
  • Temporal.YearMonth - represents a ym = new Temporal.YearMonth(2019, 6) // => 2019-06

14:51 - Polyfill (unstable)

Links

Tweet us your tasty treats!

Oct 26, 2020
Spooky Web Dev Stories — Part 1
54:11

In this episode of Syntax, Scott and Wes talk about spooky web dev stories — listener-submitted stories about web dev gone wrong.

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:12 - The Most Expensive Boolean Ever

06:19 - An Actual Logging Issue

09:37 - Snitches Get Stitches

10:41 - The Spooky Office Skeleton

12:04 - Prevent the Default of Making Money

13:52 - Computer Magic Trick

14:42 - Update Score

15:59 - Change Reaction

19:30 - Personal Mongodb

20:26 - Hello Rob!

22:08 - SSN Regex

23:06 - WordPress Plugins

23:52 - Loggin Ya In, Ya F’in Dummy

24:58 - A Hostel Coding Environment

25:59 - A Graceful Exit

27:27 - Favicon DDOS

28:07 - Common Cents

29:03 - Open Source Vendors

33:04 - Don’t Leave the Country

35:09 - Apostrophe Catastrophe

35:43 - Env

36:05 - A Christmas Miracle

36:43 - The One Million Dollar Bill

39:00 - The Hacker Who Dropped the DB

40:19 - The Tech Lead Who Uses Alert Statements

46:14 - Lorem Ipsum

46:58 - Malicious Compliance

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Oct 21, 2020
Hasty Treat - Stretching For Developers with Scott
19:58

In this Hasty Treat, Scott and Wes talk about stretching for developers — techniques, misconceptions, and how to feel better.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:21 - Devs do the following

  • Head forward looking at screen
  • Shoulders forward
  • Sitting a lot
  • Weak core
  • Carpel tunnel from typing

06:02 - Stretching misconceptions

  • Static holds
  • Dynamic controlled movements first and foremost

07:52 - Stretches to help

  • Dynamic twists
  • Cat / Cow
  • Flat down / Curl up spine
  • Arm hang to decompress spine
  • Wrist stretches and strengthening for carpel tunnel
  • Horse stance at standing desk to be office weird person
  • Shoulder circles
  • Doorway stretches

Tweet us your tasty treats!

Oct 19, 2020
How to Make Freelancing Easier
58:29

In this episode of Syntax, Scott and Wes talk about how to make freelancing easier — how to avoid burnout, and tips and tricks to make it successful.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Show Notes

02:15 - Code

  • Use starters and resets and component libraries
  • Don’t build in something you don’t know, unless you have time and budget to do so — WP is good enough for most projects
  • Feel free to go over time on projects if you are learning something new
  • Re-use code from project to project
  • Target similar types of clients

13:09 - Communication

  • Often, clear and frequent
    • People won’t be mad for being too informed — just know when to leave out the technical jargon
  • Clients typically don’t care about Git, React, etc. — they care about results
  • Don’t overwhelm them
  • Train your clients that you aren’t available 24/7

22:19 - Time management

  • Set calendar alerts early and often to not miss communications
  • Set meetings at 9am, don’t wait around all day for meetings
  • Block off large amounts of time for dev — you won’t be able to get meaningful work done in one-hour slots

27:54 - Contracts + quoting

  • Have a boilerplate contract that you can just fill in
    • Same for a quote
  • Value-based billing

33:47 - Billing + taxes

  • Don’t be shy when talking about money. Be clear on what you need, when you need it, and on what terms. This is business.
    • This is your art, but it’s also your business
  • Pay quarterly taxes - most likely
    • Or don’t and take the small hit — then you can pay once a year
  • Put taxes into another account if you aren’t good with money
  • Get a billing management system or get an accountant — you need to focus on working on code
    • Wave Apps, Xero, Freshbooks

42:03 - Marketing

  • Be loud — people need to know what you offer
  • The best marketing is a referral from a previous client
  • If you show up, return emails and do a good job, you’ll kill it
  • Show people what you are excited about: blog posts, videos, tweets, etc.
  • Go where your clients are:
    • Do you want to be serving small businesses? Family and friends
    • Do you want to be a hired gun for a technical team? Conferences/Twitter, blog posts

48:25 - Final thoughts

  • Scott — It’s ok if freelancing isn’t for you. Not everyone is great at all of these factors, myself included. However, with practice, you can be your own boss, work on your own terms, and make money. Also, don’t be afraid to take on longer contracts with established teams and companies.
  • Wes — Freelancing can be a great filler between jobs or career transitions.

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Oct 14, 2020
Hasty Treat - Updating / Restarting Long-Running Web Apps
13:01

In this Hasty Treat, Scott and Wes talk about updating web apps that have running for a long time — the problems to look out for and how to avoid them.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

01:54 - The problem

  • This only affects the client-side

05:28 - What are some solutions:

Links

Tweet us your tasty treats!

Oct 12, 2020
Potluck - Is Angular good? × Stencil.js × Self XSS × SVGs in React × Social Platforms for Devs × Project Handoff × Cleaning Knives × More!
58:11

It’s another potluck! In this episode, Scott and Wes answer your questions about getting your first web dev job, what makes a software engineer senior, handing off projects to clients, Angular vs React, the best social platforms for devs, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

01:58 - You’ve talked a couple times in the past about the security concerns around target="_blank". You mentioned how adding rel="noopener" and / or rel="noreferrer" can secure this functionality, but what’s to stop a savvy person from going into the dev tools and deleting these attributes before clicking a link? Does this defeat the entire purpose or what? Surely browsers have thought of this and it’s not so easy to hack?

03:48 - Why did you not mention Stencil when talking about web-component in the last Potluck? Can I presume you have not heard of it? It is quite successful and Ionic proves it. We’ve been using it for two years in production. This is the only library that thought web-components through to the end. If you know it, what do you think about it and would you use it?

  • Example of a stencil component:
 import { Component, Prop, h } from '@stencil/core';  @Component({   tag: 'my-first-component', }) export class MyComponent {    // Indicate that name should be a public property on the component   @Prop() name: string;    render() {     return (       

My name is {this.name}

); } }

06:12 - Is https://www.syntax.fm supposed to not work? I get a 404.

07:34 - I’m wondering what advice you’d have for someone self-taught switching from a totally non-tech industry (non profit arts, in my case) where I work in a tech role. I’ve hustled and built a portfolio of projects and learned a ton from both of your courses, but I feel that my experience is seen as less valuable because I don’t work in a traditional software/web development environment. Any tips for getting over the final hurdle of getting a dev job?

11:11 - What makes a software engineer senior?

13:08 - I have a Gatsby / Netlify client project about to launch. What’s the best approach in handing over to the (non technical) client? Do I keep in my Github account and just give the client the Netlify CMS login, or create the a Github account for the client that I can access for any maintenance? What do other devs do?

17:55 - I recently blocked all cookies on my mobile browser (Google Chrome), and I noticed something weird. A couple of sites that I know for a fact to have been built using NextJS weren’t working as expected (surprise surprise). They would load as usual, and after a second or so, all the content on the page disappeared, with the error message “sorry: an unexpected error has occurred”. In some cases, the error was printed in the site’s font, and with the same background color on the body. Why does blocking cookies do this to NextJS sites?

21:21 - How often do you make commits? I always hear, “commit often”, but I am hesitant because I feel like I may change my code later on before I make a pull request? I really liked your episode on Git Fundamentals, I would love to see a tutorial/deep dive into Git workflows and practices (when to commit / how often) Should I commit even though I know what I’m working on isn’t complete or I need to refactor it?? What is code review etiquette?

26:59 - Wes, how do you handle captioning and transcripts on your courses? Do you use some tool or service for that or do you do it by hand?

31:11 - I am a recent graduate of a code school that focused on React and Rails. The company that I currently work for uses Angular for part of their stack. I eventually would like to move into a dev spot, but I am finding that Angular feels a bit stuffy and I am not as excited about it as React, Svelte, Vue, etc. I am afraid that if I dive into Angular, I will become less relevant down the road. I want to learn everything, but I only have so much time and don’t want to stunt my growth as a developer. Any thoughts or advice on this would be sick!

36:38 - How do you handle SVGs in React? I know that SVGR exists, but I’d like to avoid adding another dependency if it’s something I can roll on my own. In the past, I’ve created functions that take parameters like fill or stroke to control color, and return a string of SVG code with the arguments interpolated in. Then I place that string into a component using dangerouslySetInnerHTML. I haven’t seen this method used anywhere else, and is probably not best practice. But also, it works, so maybe it’s fine?

39:52 - What social media platforms should you use as a Dev? What is cool to have? What are their benefits?

48:14 - Have you tried an ultrawide monitor for coding, such as 34" or 38"? I feel the extra width would be great for a single monitor setup, but haven’t been able to see one live where I live.

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Oct 07, 2020
Hasty Treat - Enums in JS (GraphQL and Typescript)
13:05

In this Hasty Treat, Scott and Wes talk about enums in JS — what they are, what they do, and how they work in JavaScript.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:11 - What are enums?

  • A type restricting variables to one value from a predefined set of constants
  • Direction = UP / DOWN / LEFT / RIGHT
  • Role = ADMIN EDITOR AUTHOR VIEWER
  • Day of the Week

05:12 - In GraphQL

  • enum Role { ADMIN EDITOR AUTHOR VIEWER}
  • Then

07:05 - In TypeScript

  • First, declare the type:
    • enum direction = { UP, DOWN, LEFT, RIGHT }
  • Then when you defined your function, use that type
    • type User { role: Role } or type User { role: [Role] }

08:49 - In JavaScript

Links

Tweet us your tasty treats!

Oct 05, 2020
Tales from Web Dev Past - Part 2
48:59

In this episode of Syntax, Scott and Wes are back with part 2 of Tales from Web Dev Past — this time looking at iFrames, layout trends, icon fonts, web rings, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Prismic - Sponsor

Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.

Show Notes

03:00 - iFrames

  • Sidebar menu
  • target

05:42 - JavaScript image hovers

08:24 - CSS Pie

09:42 - Animated gifs of people and construction

11:20 - CSS Zoom 1 / IE CSS Hacks

  • Forced IE 7 to redraw floats

13:42 - Layout trends

16:26 - Sprite maps

  • Spritecow
  • ☠️ Killed icon fonts
    • ☠️ Killed by SVG icons

18:40 - Firebug and Firebug Lite

  • Lite was a bookmarklet

20:14 - Image maps / Background gradients

25:53 - Web rings

27:41 - Glossy buttons

28:09 - Flaming text

30:01 - Marquee tags

  • Staggered
  • Speed attribute

31:26 - Spacer gifs

34:30 - AngelFire / GeoCities

36:11 - Xanga / LiveJournal

37:29 - Above the fold content

39:36 - Homestar Runner

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Sep 30, 2020
Hasty Treat - Records and Tuples in JavaScript
17:21

In this Hasty Treat, Scott and Wes talk about records and tuples in javascript — what they are, why you might want to use them, and more!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

??? -

02:42 - Immutability

05:08 - Records

  • Immutable object
  • Syntax #{x: 1, y: 2}

05:56 - Tuples

  • Immutable array
  • Syntax #[1,2,3,4]

07:18 - For both

  • Referred to as a compound primitive

  • Can contain only primitives, not objects

  • They are compared deeply by their contents rather than their identity

     assert(#{ a: 1 } === #{ a: 1 }); assert(#[1, 2] === #[1, 2]); assert(#{ a: 1, b: 2 } === #{ b: 2, a: 1 });  
  • Potential for optimizations

    • Optimizations for making deep equality checks fast
    • Optimizations for manipulating data structures
  • Works well with type systems

  • Better integration with the debugger

  • Accessed through normal record.scott object like syntax

13:39 - Stage 2

Links

Tweet us your tasty treats!

Sep 28, 2020
Git Fundamentals
58:40

In this episode of Syntax, Scott and Wes talk about Git fundamentals — what it is, why you need it, best practices, and more!

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Show Notes

03:12 - What is Git?

04:16 - Why do you need it?

06:31 - UI vs command line

09:03 - Commands 101

  • https://git-scm.com/
  • init
    • .gitignore file is key right off the bat
  • add
    • add -p - quick review of all the changes you’ve made
  • commit
    • Multiple adds and commits
    • Commit messages should be descriptive
  • push
    • What are origins?
  • pull
  • clone
  • checkout
  • merge
  • fetch
  • stash
  • fork
  • Merge vs pull request
  • Git vs GitHub / Alternatives
    • Bitbucket
    • GitLab

44:25 - Common issues

  • Merge conflicts
  • Files being tracked unintentionally
  • “How do I delete file from GitHub?”
    • git rm -r
    • alias gri="git ls-files --ignored --exclude-standard | xargs -0 git rm -r"
  • Databases in Git?

49:10 - Git clients

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Sep 23, 2020
Hasty Treat - Our First Bucks Made From Web Dev, Teaching, YouTube and Tutorials
22:49

In this Hasty Treat, Scott and Wes talk about their first steps in the word of entrepreneurship and web dev specifically.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

Wes:

  • First money: check for $300
  • First website: Pool company
  • First ad sense income: Craigonomics
  • First YouTube: import large SQL database with bigdump
  • First online Product: Sublime Text - Ryan Christiani
  • First in-person teaching: HackerYou
  • First project at agency: Jet Cooper

Scott:

  • First dev gig: parents tea store
  • First design gig: Perpetual
  • First YouTube video: Adobe Premier 101
  • First BIG YouTube video: Sass Tutorials
  • First ad sense income: scotttolinski.com blog post about music promotion sites
  • First online product: Sass Mastery
  • First project at agency: Nu Step

Links

Tweet us your tasty treats!

Sep 21, 2020
Writing Good CSS
56:45

In this episode of Syntax, Scott and Wes talk about writing good CSS.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Show Notes

02:11 - Frameworks

13:37 - Preprocessors

19:42 - Tools

34:19 - Stylint

  • Stylint
  • More than just a basic linter
  • Capable of complex rules in your CI process - i.e. if you are using a color, make sure it’s a CSS variable

36:37 - Removing unwanted CSS

41:17 - Writing maintainable CSS / scoping solutions

  • Component-based
    • CSS Modules
  • Naming Convention Based
  • CSS Variables
    • Powerful when utilized with things like calc() to avoid out of sync values
  • Know which browsers you need to support

Links

Syntax Highlight

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Sep 16, 2020
Hasty Treat - Time Block Planning
16:52

In this Hasty Treat, Scott and Wes talk about time block planning — what it is and how it can help you increase your productivity!

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

01:50 - What is time block planning

03:12 - How TBP has helped Scott stay focused

04:46 - How it helps family life

05:57 - How to plan your week

11:00 - How to deal with setbacks

Links

Tweet us your tasty treats!

Sep 14, 2020
Tales from Webdev Past - Cleafix × Floats × Cufon × Guestbooks × PNG Fix × More!
49:46

In this episode of Syntax, Scott and Wes talk about tales from web dev past — clearfix, floats, flash, cufon, guestbooks, hit counters, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

04:28 - Float-based layouts

09:29 - Loading Screens:

  • Two websites - one flash and one HTML
  • Splash screen

11:22 - Hit counters

12:28 - Guestbooks

13:28 - Flash

  • 3rd party player
  • Media dragged its feet FOREVER
  • ☠️ Killed by Steve Jobs

18:46 - Fonts

  • The Golden Layout
  • Cufon / sIFR / Images of text
  • Typekit
  • ☠️ Killed by font-face

24:15 - Folder-based version control

  • ☠️ Killed by Git

26:22 - FTP

  • ☠️ Killed by Git, then many other things

28:40 - CSS Zen Garden

32:02 - TextMate

33:58 - Sliding doors

  • A technique for rounded corners on buttons
    ☠️ Killed by CSS

35:29 - PNG Fix

  • ☠️ Killed by the death of IE6

37:53 - 9-Panel layouts

  • ☠️ Killed by CSS

39:20 - CSS 3 Please

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Sep 09, 2020
Hasty Treat - Backyard Offices
20:11

In this Hasty Treat, Scott and Wes talk about home offices, backyard offices, costs, and pros and cons!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:40 - Structure options:

  • Existing sheds
  • Build your own
    • likely not allowed
  • Drop-in offices
  • Rubbermaid shed

07:18 - Electrical

07:58 - Insulation

09:01 - Heating

11:30 - Cooling

16:01 - Interior

16:42 - WiFi

17:12 - Costs ~ $4k

  • Electrical - $2k
  • Flooring - $600
  • Paneling- $900
  • AC - $1000
  • Fan - $100

Links

Tweet us your tasty treats!

Sep 07, 2020
Potluck - RIP Firefox? × Safari × Changing Careers × Regression Testing × Google Analytics Alternatives × Malicious Github Users? × Mac vs Windows × More!
59:19

It’s another potluck! In this episode, Scott and Wes answer your questions about the recent Mozilla layoffs, Safari, finding time to learn coding, Google Analytics alternatives, malicious Github users, and more!

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Show Notes

01:15 - What are your guy’s thoughts on Mozzila’s layoffs and how it will affect developers?

08:42 - Right now I am a math teacher. I am married with 2 kids (3 and 1) so finding time to code is difficult. My current situation includes waking up at 4:30 am everyday just to get in some time before the kids wake up. Do either of you have any tips about finding a balance between raising kids, getting stuff done around the house, having a full time job and trying to teach yourself web development to transition into a different career?

13:23 - If you had to use a drag-n-drop framework using React, which one would you choose?

15:49 - E2E vs Visual Regression Testing? At which web-app development cycle to implement each? Best tools open source vs purchase?

20:36 - I teach a Highschool course in web development. For a group of students who have a solid knowledge of HTML/CSS and a decent understanding of JavaScript, would Svelte be a good framework for entering into component-based development for the first time?

22:33 - What’s a good Google Analytics alternative in 2020? I have a site on Netlify that the $9/mo seems a bit steep for, for what the site is, and flipping the domain through Cloudflare just for the analytics seems crazy; but is it worth it? Alternatives would be awesome, as I’d love to get off the Google overlords.

29:22 - I have noticed about a dozen to 100 unique clones of my git repos after each push. It doesn’t matter if the repo is initialized, picture added or the readme updated. The repos are still cloned. The traffic section shows the views to my repo at 1 sometimes 2. Is this normal? Is this how interested employers keep tabs on you? Are there a lot of malicious git users? What is happening?

32:30 - With Apple switching to their own processors is it silly for anyone to buy a Mac for development before that releases? Do you guys have experience with Windows, and which would you still prefer today if you needed to buy?

40:28 - Have you ever been approached by or heard of GitAds.io? They’re trying to pay developers to put ads onto popular open source libraries on Github, and they approached me recently, and I wasn’t sure what to think about them. What do you think?

45:16 - I just listened to your TLD game. It made me wonder your opinions on personal site domain names? Should it always try to be yourname.dev? What about .me or other domains?

47:53 - What’s the best way to introduce new technology or processes to a team?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Sep 02, 2020
Hasty Treat - End of Season Wrap Up
16:22

In this Hasty Treat, Scott and Wes wrap up season one of the podcast and talk about what’s coming.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

01:32 - Plans for the Fall

06:59 - Fav Hasty

08:55 - Fav Tasty

10:22 - Top Episodes of 2020

Tweet us your tasty treats!

Aug 31, 2020
Potluck - MDX × Portfolio Projects × Code Commenting × CSS Properties × Reusable Components × More!
57:27

It’s another potluck! In this episode, Scott and Wes answer your questions about MDX, portfolio projects for junior devs, code commenting, CSS property order, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Netlify - Sponsor

Netlify is the best way to deploy and host a front-end website. All the features developers need right out of the box: Global CDN, Continuous Deployment, one click HTTPS and more. Hit up netlify.com/syntax for more info.

Show Notes

02:18 - I’m curious to know what you guys think of MDX. I’d love to learn more about pros and cons, if you guys had a chance to use it.

08:49 - Where would you put business logic in Vue.js middle- or large-scale applications? I try to put business logic in store but it makes hard to maintain such store, even with splitting to actions/getters/mutations files. I ended up using vanilla JavaScript files, where each file is a class singleton. I was wondering: is it a good solution or do you have better alternatives in mind?

12:07 - I commonly find myself engineering complex programs and left flabbergasted on how to express these ideas to other people when the need arises that I need to explain them and remember why I did them a certain way. How can I get better at conceptualizing intricate design patterns or functions as well as have better memory recall for these abstractions?

18:02 - Can I get recommendations for a junior dev portfolio? What five projects you would recommend to build that will significantly help in getting a job as a front-end web dev and why?

21:13 - I am now working on building a minesweeper game with React. You know how on a computer you right click to flag and disable a cell? I am thinking of doing a press and hold on a mobile device instead. I am not sure how to do either (the right click logic or the press and hold). How can you listen for these events in React? Can you help with some guidance or resources? :)

30:00 - What are your thoughts on SailsJS as a Rails-equivalent framework in Javascript? They recently released version 1.0 and I’m wondering if I should start using it in projects or if I should wait to see if it pans out.

34:35 - How do you go about creating reusable React components (reusable from project to project)? Do you create packages and publish them to NPM? Or do you have another method for storing code for components that you will likely need to use again?

38:33 - Thoughts on shadow dom / custom elements? Would you use them in your own projects?

40:49 - How do you organize CSS properties within a rule and why? Random, alphabetical, logical groupings, etc.

46:04 - Have u ever used the 2nd parameter of JSON.stringify for anything useful?

48:00 - Getting my first dev job at an actual software company a year ago opened my eyes to the vast difference between educational repos and the absolute jungle that can be enterprise code bases. I’ve also learned the importance of writing code that will be readable later - ensuring any hacky workaround is replaced with a pattern seen elsewhere in the code base, etc. My question is - are there resources on these sorts of topics for folks trying to break into the industry? A lot of tech topics revolve around how to get your code to run, which feels to me like only half the battle. Where can juniors find resources on robustness?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

  • Scott: All Courses - Sign up for the year and save 25%!
  • Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!

Tweet us your tasty treats!

Aug 26, 2020
Hasty Treat - Stump’d
19:36

In this Hasty Treat, Scott and Wes are back with another edition of Stump’d! where they try to stump each other with interview questions.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

03:28 - What is the difference between HTML and React event handling?

05:55 - What are JavaScript data types?

07:00 - In which states can a Promise be?

07:48 - Discuss the differences between an HTML specification and a browser’s implementation thereof.

09:14 - What is a stateless component?

10:10 - What is a pure function?

10:51 - What is the output of the following code?

 const a = [1, 2, 3] const b = [1, 2, 3] const c = "1,2,3"  console.log(a == c) console.log(a == b)  

13:35 - What is memoization?

15:15 - How do you pass an argument to an event handler in React?

15:59 - What is HTML5 Web Storage? Explain localStorage and sessionStorage.

Links

Tweet us your tasty treats!

Aug 24, 2020
Potluck - Subscriptions × ES Modules in Node × Chicken Thigh × Being a Good Dad × Refactoring × More!
01:03:06

It’s another potluck! In this episode, Scott and Wes answer your questions about React subscriptions, ES Modules in Node, how to cook a chicken thigh, being a good dad and more!

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Stackbit - Sponsor

Stackbit offers developers tools that enable things like inline content editing, live previewing of content changes, and collaboration features on your Jamstack site, without code changes. That’s why
Stackbit is the best way to Jamstack. stackbit.com.

Show Notes

02:11 - What are “subscriptions” in React, or in programming in general? The React docs mention that setting up a subscription is an example of a side effect, but what exactly is a subscription, and how do you set one up?

05:43 - Using the latest node esm imports, is it possible to use aliases? Using the old require() syntax I used the npm package module-alias (https://www.npmjs.com/package/module-alias), but I cannot seem to find a solution for node v14 imports. In a deeply nested file, I find the import ‘…/…/…/some/folder’ syntax to be awful compared to require(’@/some/folder’).

09:20 - I’ve been a full-time developer for over 10 years and my company has a fairly flat hierarchy. I want to take on more responsibility (and salary) but my company doesn’t have anything like a “lead developer” position. Any ideas for how to move up without switching companies? I know my boss would be receptive if I came to him with a pitch, but we work full stack so it feels like I’m already doing it all.

12:59 - In Wes’ website episode, he mentioned using Gatsby Parallels for images. Why not git LFS?

17:25 - For Wes: Any Big Green Egg tips for beginners? I just ordered a kamado style grill and I’d appreciate any tasty tips you’ve got.

22:45 - Inline code is considered harmful because of potential XSS attacks. Lighthouse recommends inlining critical CSS to improve page speed. What do you think about this tradeoff?

26:30 - What advice would both of you have for being a first-time father, and how can I best prepare? My wife is pregnant, and we are both very excited! I want to do the best I can at being a good father. Our baby is due in January. As both of you are fathers (multiple times), I would love to hear your thoughts.

32:58 - Are present web developers merely crud bastards for corporate culture? If not, What entrepreneurial opportunities are open with Javascript and hooking up React with backend Node/Laravel and reading the Google Map docs? Of course the list isn’t exhaustive but you get my point right? Note: I’m not interested in selling courses and creating frameworks.

37:08 - Do you have any use for ES6 Generators and yield? It seems that they are a mechanism for async-await “under the hood,” so using ‘async-await’ is probably sufficient.

39:10 - With a legacy project that has old build dependencies how do you decide when to retool and fix all the npm audit issues?

46:10 - In what instances do you prefer to use rem vs em vs pixels for font size? I usually think about it like so: if I’m okay with an element’s font size being sized based on the parent, then I’ll use em. If not, then I’ll use rem. I almost never use pixels anymore except sometimes on the html element. But even then, I usually use a percentage. In practice, I’ve found it a bit hard to gauge what to expect with ems because of nesting issues. So, I’ve mostly been leaning towards rem. Though I also understand that using rems can be less modular. How do you guys make the decision?

52:49 - Hello chaps. Thank you so much for the show, I’ve learned an awful lot through listening. I’ve been dabbling in development for some time now and have taken on a project for an Express site which aside from a few static pages will include a shop with a small number of items (<5), customer dashboard (order tracking and submitting supplementary order info), and an image centric journal/blog section. I’ve listened and re-listened to your CMS roundup which is great, but having worked through Wes’ Node course I’m kinda thinking why would I spend the time integrating a CMS when I can just build an ‘Add Post’ page for admin users, save the posts in Mongo, upload images to my server, and use Cloudflare’s free tier CDN. Please explain why this is (or isn’t🤷‍♂️) a bad idea, and more generally share your wisdom on when a CMS is or isn’t actually necessary. PEAACE!

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Aug 19, 2020
Hasty Treat - Gatsby Tips
17:37

In this Hasty Treat, Scott and Wes talk about tips and tricks for using Gatsby in your projects

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

02:02 - React Helmet

  • Make a re-usable SEO component that sets defaults. Spread children to override.

04:27 - When in doubt, stop the build and restart

  • Gatsby clean
  • Nuke node_modules + package-lock

05:34 - Use ESM to use ES Modules everywhere - share functions between gatsby-node and gatsby-browser

06:44 - Run the build command locally to troubleshoot prod

  • Dev mode isn’t SSG’d - people overlook this

08:06 - Wrap your layout automatically in gatsby-ssr and gatbsy-browser

  • wrapPageElement and wrapRootElement

09:50 - Consider just adding the layout component manually to each page

  • This will allow you to skip the layout if you need to have a page that isn’t typical

11:21 - Layout is not suitable for unmount animations

  • Orchestrating individual component animations in Gatsby isn’t easy, use wrapPageElement to write your animations or delays for internally unmounted components.

12:59 - use onCreatePage to pass context to the layout

 exports.onCreatePage = ({ page, actions }) => {   const { createPage } = actions;    if (page.path.match(/thumbnail/)) {     page.context.layout = 'thumbnail';     createPage(page);   } };  

14:03 - You don’t have to query for everything

  • Hard-coding data in html/jsx is super valid

15:32 - Gatsby Parallel Runner

  • For lots of images

Links

Tweet us your tasty treats!

Aug 17, 2020
How does stuff get added to CSS? Adam Argyle answers!
01:03:32

In this episode of Syntax, Scott and Wes talk with Adam Argyle about how stuff gets added to CSS.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Guests

Show Notes

01:48 - Who are you and what do you do?

04:13 - How does stuff get added to CSS?

06:44 - Github issue proposal or public document

  • Shares use case
  • Problem made succinct
  • StrawMan solution
  • JS demo

10:12 - Time

  • Multiple proposals
  • Comments
  • Back and forth
  • Bikeshedding

20:00 - Editor’s draft spec (Stage 1)

  • CSS typed
  • Examples
  • Provided code logic
  • Implementor interest
    • Can go stale
    • Explainer
  • Implementor
    • Prototype behind flags in browser
    • Intent to Prototype (I2P)

24:42 - Working Draft (Stage 2)

  • WPTs
  • Prototype behind flags in browser
  • Needs two or more to graduate
  • Intent to Ship (I2S)

24:54 - Conference Calls

  • Around 10 items to discuss
    • Issues or proposals
  • Flexible list
    • Things can be injected as emergency
    • Things can get punted to the next call

25:26 - Face 2 Face (F2F)

  • Four times a year
  • Presentations
  • Breakout sessions
  • Houdini focus groups, etc
  • Try to resolve as many Github issues as possible

27:34 - Candidate Recommendation (Stage 3)

  • Could still be behind a flag
    • Edge cases are being worked through
    • WPTs and standards are being nudged into a final state

44:20 - Roles

  • Spec author
  • Community Member
    • Print
    • Color
    • Internationalization
    • Box Model
    • AOM
    • JS APIs
    • Renderers
    • etc
  • Implementor
  • It’s like pub/sub, where spec authors pub and implementors sub, and the community tries to help shape the message that’s published while supporting the subscribers who need to implement and make it real

46:32 - Questions

  • What language is CSS written in?
  • What's the deal with Houdini?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Aug 12, 2020
Hasty Treat - How To Refine Your Process
18:05

In this Hasty Treat, Scott and Wes talk about refining your processes, how to evaluate them, make them better, and more!

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

04:18 - Find slow process

  • Getting through email
  • Cleaning my desk

06:29 - Set clear goals (smart goals)

  • Is my inbox less crazy?
  • Don’t spend too much time
  • Do a 30-day challenge

09:46 - Ask around

  • What are people you know using and why
  • Time-blocking
  • Batching
  • Eat that frog

Links

Tweet us your tasty treats!

Aug 10, 2020
React State Round Up
54:39

In this episode of Syntax, Scott and Wes talk about React State libraries, should you use them, pros, cons, and more!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

01:24 - Context

  • Have we used?
    • Scott: Yes
    • Wes: Yes
  • Pros
    • Built into React
    • As simple or complex as you want
  • Cons
    • Takes effort to optimize
    • Takes effort to plan and organize aka can get out of hand quickly

08:49 - Redux

  • Have we used?
    • Scott: Yes
    • Wes: Yes
  • Pros
    • Huge user base
    • Legacy of growth and improvements
    • Modern API
    • Even though it’s hard to learn, it has a clear “how to build with it” path
    • Dev tools
  • Cons
    • Complex
    • Thing that calls a thing that calls a thing that calls a thing
    • Confusion around what additional packages are needed, e.g. ducks, saga, whatever

17:08 - XState

  • Have we used?
    • Scott: Yes
    • Wes: No
  • Pros
  • Cons
    • Knowledge overhead - having to understand state machines
    • Complex syntax

23:26 - Zustand

  • Have we used?
    • Scott: Yes
    • Wes: No
  • Pros
    • Fast, scalable, easy to use
    • Simpler
    • No context providers
  • Cons
    • Smaller community 2.6k stars on Github
    • Can inform components transiently (without causing render)

27:04 - Apollo Client

  • Have we used?
    • Scott: Yes
    • Wes: Yes
  • Pros
    • Fits in well with your GraphQL API
    • Dev tools
  • Cons
    • Complex, large syntax for simple operations
    • Dev tools
    • SSR story is really complex. It’s hard because they aren’t also the framework.

31:35 - RXJS

  • Have we used?
    • Scott: No
    • Wes: No
  • Observable based

33:02 - React Query

  • Have we used?
    • Scott: No
    • Wes:
  • Pros
    • Fast growing community
    • Awesome dev tools
  • Cons
    • Not sure if this can be used for application state or just data

35:37 - Recoil

  • Have we used?
    • Scott: Yes
    • Wes: No
  • Pros
    • Very good for complex, splintered state needs
  • Cons
    • Overly complex for most use cases

38:34 - MobX

  • Have we used?
    • Scott: No
    • Wes: No
  • Pros
    • Big community
    • Not just React
    • Powerful
    • Observable capabilities
  • Cons
    • Uses decorators, but doesn’t have to?

43:15 - Easy Peasy

  • Have we used?
    • Scott: No
    • Wes: No
  • Pros
    • Simple API (easy peasy)
    • Redux dev tools supported

45:06 - Meteor ReactiveDict / ReactiveVar

  • Have we used?
    • Scott: Yes
    • Wes: No
  • Pros
    • Very simple
    • Get, set
    • Is Reactive
  • Cons
    • Lock-in to Meteor

46:19 - Final Thoughts On State

  • Wes: Go for simpler solutions
  • Scott: I think application state should be separate from application data, but maybe that’s because there isn’t a solution that does both how I want

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Aug 05, 2020
Hasty Treat - Upgrading Next.js Syntax Site
17:31

In this Hasty Treat, Scott and Wes talk about their experience upgrading Syntax.fm and some of the site’s big changes.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

02:26 - The old Syntax site

  • Next.js
  • Custom server for
    • API - shows, Latest shows, sick picks
    • On-demand page builds
    • Custom routing

06:41 - The new Syntax site

  • Next.js has solved those things now, no need for a custom server.
    • API Routes
    • On-demand page builds: SSG with Next.js. It’s a server, but caches the page builds. Releasing the shows happens with revalidation. It’s statically generated like Gatsby, but you can also choose
    • Custom routing is now done with [pages]
  • Very fast to load
  • Very fast to build
  • Very fast to deploy
  • It’s now a “dynamic static site”
  • Zeit Now 1 to “Vercel”
  • Huge thanks to Tim Neutkens and Luis Alvarez from Vercel for making it happen.

13:23 - Why not:

  • Gatsby
    • Entire site would need to be regenerated exactly at 9am eastern
    • API of the site would need to be done with something else like Netlify Functions - not nearly as nice as Next API routes
  • Sapper

Links

Tweet us your tasty treats!

Aug 03, 2020
Meteor's 2nd Life
01:04:37

In this episode of Syntax, Scott and Wes talk with Filipe Névola about Meteor and the exciting things happening in the Meteor world!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Guests

Show Notes

01:20 - What is your background?

03:41 - What exactly is Meteor?

12:00 - What are the biggest misconceptions of modern meteor?

18:20 - What do you say to people who think Meteor is dead?

21:33 - How does data get from your Meteor into your React app?

  • Example of getting data on client side
 import { useTracker } from 'meteor/react-meteor-data'  // Hook, basic use, everything in one component const MyProtectedPage = (pageId) => {   const { user, isLoggedIn, page } = useTracker(() => {     // The publication must also be secure     const subscription = Meteor.subscribe('page', pageId)     const page = Pages.findOne({ _id: pageId })     const user = Meteor.user()     const userId = Meteor.userId()     const isLoggingIn = Meteor.loggingIn()     return {       page,       isLoading: !subscription.ready(),       user,       userId,       isLoggingIn,       isLoggedIn: !!userId     }   }, [pageId])      if (!isLoggedIn) {     return 
Create an Account Log in
} return }

27:50 - What do you think is the ideal usecase for Meteor?

31:09 - Why did Meteor 1.0 fail to maintain hype?

36:41 - What does Meteor’s future look like?

45:27 - Are there any plans to integrate serverless into Meteor?

46:55 - Any little known features of Meteor that people might be interested in?

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Jul 29, 2020
Hasty Treat - Target=_blank security issue? What's the deal with noopener and noreferrer?
14:00

In this Hasty Treat, Scott and Wes talk about noopener and noreferrer and why you should use them with links that have blank targets.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

03:35 - What’s the big deal?

  • If you have a link that is target="_blank" you should add rel=“noopener” and rel=“noreferrer”
  • Retail Me Not uses it
  • Valid use cases:
    • Same domain change the page from a popup
    • Cross domain changing page data
  • Example: https://mathiasbynens.github.io/rel-noopener/

05:39 - Why doesn’t the browser just fix it?

10:48 - Does this hurt SEO?

  • It breaks analytics of the recipient site, turning a referral visit from your site into direct traffic, unless the link has UTM or similar tracking parameters. If you have a site where passing traffic offsite is part of the business model, links need an affiliate id instead.

Links

Tweet us your tasty treats!

Jul 27, 2020
Potluck - Beating Procrastination × Rollup vs Webpack × Leadership × Code Planning × Styled Components × More!
50:41

It’s another potluck! In this episode, Scott and Wes answer your questions about transitioning to backend dev, tips for beating procrastination, Rollup vs Webpack, code planning, growing as a leader and more!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Show Notes

02:33 - I am a junior dev, coming up on two years at my current agency. I have been primarily on the frontend using Angular and templating with Handlebars and other HTML and CSS. I have been asked if I would be interested in moving more into backend, with a focus on Node.js. Outside of creating APIs, what else should I do to learn “backend”?

06:08 - I work as a web master and would like to be a frontend developer someday. Currently I am working on a MERN stack app on my own to enhance my skills, but have problems focusing and tend to procrastinate a lot. How do you tackle distractions and get things done? I would appreciate some tips.

11:00 - Rollup or Webpack? Webpack 5 still doesn’t seem to support ES6 module output, as described by Philip Walton, so instead of upgrading to Webpack 5, this might be a good time to think about switching to Rollup (or Parcel).

13:46 - I have been learning web development (HTML, CSS and JS) and am at a place where I can build simple websites for small businesses, but I feel like a beginner and am wondering if you have any recommendations on courses to get to a more intermediate/advanced level?

18:01 - Why should you choose Styled Components over other ways of writing CSS?

22:56 - What are your thoughts on companies that make senior developer roles require leadership responsibilities? A great technical person does not always make a great leader or visa versa.

26:36 - I am often not good at planning out code from the start. I find that it’s easier to start coding, write a few lines, run it to see where I’m at, and carry on. This technique doesn’t work when I need to wait for a deploy to finish before I can view the result, as it greatly increases dev time. Do you have any advice for what I can do better?

31:43 - I have a very random question. for context I’m a Mac and Linux user myself. However, recently while building our company application I’ve noticed that Windows does extremely weird things with font sizes. Since we have a pretty decent Windows user base, obviously this is something my partner and I want to solve. However I’m very unsure of the best way to handle it. It seems entirely different from user to user. How in the world do we as developers account for these inconsistencies? We have tried vertical media queries that more or less kick them to tablet mode. Obviously this is less than optimal.

37:50 - Are side projects common among developers? I recently mentioned to my boss that I have a few side projects - nothing serious, just for learning mostly - and he said he would rather I didn’t, and instead focus on my work. He said he hadn’t really heard of developers doing side projects, and that if I want to work on things that aren’t our work he has other things I can do.

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Jul 22, 2020
Hasty Treat - Turbolinks + Server Generated HTML + JS Sprinkles
15:31

In this Hasty Treat, Scott and Wes talk about turbolinks — what it is, how to use is, popular apps using is, and more!

Prismic - Sponsor

Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.

Show Notes

02:50 - What is turbolinks?

  • Generate HTML on the server
  • Send it over the ajax request
  • Load it in the page

03:55 - Who is using Turbolinks?

05:24 - Turbo Links javascript browser bundle

  • Intercepts any link click
  • Fetches the page HTML

09:19 - JS Sprinkles

Links

Tweet us your tasty treats!

Jul 20, 2020
Video for the Web 2020 and Beyond
53:13

In this episode of Syntax, Scott and Wes talk about the future of video for the web!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section.

Show Notes

08:19 - Scott’s Background in video

  • Started editing in middle school
  • Worked professionally as an editor and production assistant for magazine
  • Created specialty flash video players
  • Have been hosting video content since the start of my web career

09:12 - Terminology

  • Transcoding - digital to digital conversion of one format to another
  • Ingest - bringing a video to a new facility (ie uploaded video file or data stream to server)

10:51 - Streaming vs Downloading

  • Streaming is basically chunks of content at a time, while download is waiting for the entire file to be downloaded before playing.

11:16 - Formats

  • MP4
  • WebM
  • DASH
  • HLS (HTTP Live Streaming)
  • m3u8

21:35 - Players

27:48 - Services Roundup 🐴

  • YouTube - free
  • Vimeo - $
  • MUX - $$
  • Wistia - 
  • Cloudflare - $$
  • JW Player - $
  • Cloudinary - $$$
  • Brightcove - $$$
  • Azure - $$
  • Bit Movin - $$
  • AWS - $$

46:59 - What Scott did and how/why

  • upchunk
  • Mux
  • Video.js
  • Custom uploader
  • Using polling

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Jul 15, 2020
Hasty Treat - The Domain Name Game
19:38

In this Hasty Treat it’s another edition of the Top Level Domain Game!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

02:25 - How it works

We pick a TLD from a list, and the other person needs to guess:

  1. Is it for a country or business? +5 points
  2. What country, business, or type of business is it for? +5 points
  3. How much per year does it cost to register? You may also say “unregisterable” +/- off by $$ https://www.101domain.com/
  4. Is scott._ and wes._ available? -10 points for each

04:00 - .sd

  • Scott: 5 + -5 + -126 + -10 + 10 = -126

05:46 - .ong

  • Wes: 5 + -5 + -30 + 20 = -10

07:53 - .koeln

  • Scott: 5 + -5 + -20 + 20 = -126

09:23 - .co.ke

  • Wes: 10 + -15 + 0 = -15

11:00 - .tr

  • Scott: 5 + -5 + 0 + 0 = -126

12:25 - .ist

  • Wes: -5 + 5 + -10 + 0 = -25

13:57 - .xn—45q11c

  • Scott: 5 + 5 + -295 + 10 = 20 = -401

16:40 - .reit

  • Wes: 10 + -1460 + 10 = -1465

Tweet us your tasty treats!

Jul 13, 2020
Jerome Hardaway + Vets Who Code
01:02:38

In this episode of Syntax, Scott and Wes talk with Jerome Hardaway about web dev, vets who code, diversity in tech, and more!

.TECH Domains - Sponsor

If you need eyes on your project, you’ll need a domain, and .TECH is perfect for representing your brand. Find out if your .TECH domain is available at go.tech/syntax2020. Use the coupon code Syntax2020 and get 90% off 1- 5- and 10-year domain names.

Sentry - Sponsor

If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

Guests

Show Notes

01:50 - Captain America of Tech

03:25 - Where do you work and what type of stuff do you work on?

08:03 - What was your introduction to programming?

15:46 - When did you start Vets Who Code?

24:13 - What is the stack behind Vets Who Code?

29:56 - How do you help prep vets to get jobs?

41:32 - How can you be an ally and amplify black voices in tech?

50:05 - Everybody against racism

Links

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!

Jul 08, 2020
Hasty Treat - Forms, Captchas, Honeypots, Dealing With Malicious Users and the Sad State of Contact Forms
20:39

In this Hasty Treat, Scott and Wes talk about forms, captchas, dealing with malicious users, and more!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

02:00 - So you made a form:

  1. Contact form
  2. Sales form
  3. Email signup for newsletter
  4. Bug report
  5. Sign up for an account
  6. Password reset

03:00 - Now someone is going to:

  1. Have a bot that submits it
  2. Maliciously write a bot that submits thousands

04:14 - So what can you do?

4:54 - Honey pot

  • This is a field that is either hidden or you tell the user not to fill in
  • Can goof up autofill
  • Works in many cases

07:37 - IP Throttle

  • Only allow each IP to do an action a certain number or times inside a window
  • You may only try signing up once per 10 mins

09:48 Block known ASN

12:37 - Captcha

  • Soft captcha: “What is 1 plus 1?”
  • Annoying captcha: Type these letters
  • Google captcha: Train our self driving cars
  • Hidden captcha
  • Cloudflare hCaptcha

Links

Tweet us your tasty treats!

Jul 06, 2020
Our React Wish List
51:55

In this episode of Syntax, Scott and Wes talk about what they wish existed in React!

DevLifts - Sponsor

Refactor your body with DevLifts. They have a few different programs: 1) fit.start (normally $19/month) has a few options (lean, bodyweight, and strong). Workouts are delivered via email each month, with access to a Slack community for questions and accountability. 2) Premium (normally $199/month) is a custom-tailored option, where you get your workouts and nutrition advice after answering a questionnaire. They also check in with you each week via Slack to see how it's going and make changes if necessary. Get 50% off fit.Start plans with code SYNTAX and 50% off Premium with code TASTY.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the "How did you hear about us?" section.

Show Notes

React

03:53 - Unmount delay for animation

06:20 - Suspense with SSR released (or not because I think they are shelving it)

09:24 - File based components

  • Like Svelte and Vue
  • This would look like a file with a special scoped