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: 1179
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
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 slinks 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 slink 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 slink has UTM or similar tracking parameters. If you have a site where passing traffic offsite is part of the business model, slinks 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 - Turboslinks + Server Generated HTML + JS Sprinkles
15:31

In this Hasty Treat, Scott and Wes talk about turboslinks — 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 turboslinks?

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

03:55 - Who is using Turboslinks?

05:24 - Turbo Links javascript browser bundle

  • Intercepts any slink 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