Logo
    Search

    Podcast Summary

    • Web development horror storiesLearning from past mistakes in web development and using tools to prevent future issues is crucial

      Even experienced developers can make mistakes that lead to significant consequences. On Syntax, a development podcast, Wes Booth and Spooky Dalinsky share horror stories from their audience about things that went wrong in web development. These stories range from accidentally deleting entire databases to bringing down entire companies. Some of these stories are so extreme that they involve bringing in professionals with angle grinders to access physical servers. Despite the scary outcomes, it's important to remember that these stories are usually from the past, and we can learn from them. The podcast is sponsored by companies like LogRocket, Mux, and Linode, which help developers troubleshoot and prevent such issues. These stories serve as a reminder that mistakes happen, but it's essential to learn from them and have the right tools to prevent them in the future.

    • Stories of developers causing unintended consequencesThorough testing and double-checking code before deployment is crucial to prevent financial or reputational damage.

      Developers need to be extra cautious when implementing seemingly simple solutions to prevent potential bugs that could cause significant financial or reputational damage. The first story shared was about a developer who, in an attempt to block spam emails, accidentally prevented all users with "Denver" in their email addresses from purchasing courses on his platform. This oversight went unnoticed for a long time until it was discovered during a podcast recording. The second story involved a crypto protocol that accidentally gave away $90,000,000 to its users due to a bug. The founder begged users to return the money, but threatening them with the IRS didn't help. These stories highlight the importance of thorough testing and double-checking code before deploying it. It's crucial to remember that even small mistakes can have significant consequences. In the first story, the developer's quick fix caused unintended consequences, while in the second story, the protocol's mistake resulted in a massive financial loss. As developers, we must take our responsibilities seriously and strive to avoid these kinds of mistakes. It's always better to invest time and resources in testing and quality assurance than to deal with the aftermath of a costly error.

    • Stories of data loss due to lack of backupsRegular backups are essential to prevent data loss and ensure business continuity. Check and double-check backup processes to avoid unexpected data loss.

      The importance of regular backups cannot be overstated. The speaker shared two stories where the absence of proper backups led to significant data loss and subsequent issues. In the first instance, a deploy script error resulted in the deletion of an entire site, along with its associated lists and SharePoint database. The second story involved formatting an external hard drive, which resulted in the loss of important files. In both cases, the teams were fortunate to have backup environments or recoverable data, but the process of restoring the data was time-consuming and stressful. The speaker emphasized the importance of frequent backups and double-checking the backup process to prevent such incidents. The speaker also shared a personal anecdote about their paranoia regarding data loss due to past experiences. These stories serve as a reminder that data loss can occur unexpectedly and that having reliable backups is crucial for mitigating the potential damage.

    • Accidents in coding can have major consequencesExercise caution when handling sensitive info, ensure tests are labeled, and prioritize security and transparency to minimize coding errors' impact

      Accidents in coding can lead to major consequences, both for the developer and the organization. A simple mistake, like wiring oneself to a production database or accidentally leaking confidential information, can result in significant backlash. In the first instance, the developer owned up to the error and implemented a cover story, while in the second case, the entire XFL football league's cities were leaked, leading to major repercussions. It's essential to exercise caution when handling sensitive information and to ensure that tests are clearly labeled to prevent confusion. Additionally, developers often have access to confidential information, which can lead to potential risks if not handled properly. It's crucial to prioritize security and transparency to minimize the impact of any errors.

    • Testing code changes in different environments prevents unexpected issuesProperly testing code changes in various environments is crucial to prevent unexpected issues in production. Identical production and development environments help avoid unpleasant surprises.

      Properly testing code changes in different environments before deploying to production is crucial to prevent unexpected issues. The spookiest mistakes can occur when changes work in development and testing environments but cause problems once live. For instance, switching from lazy to eager joins in a database can lead to an entire system going down due to insufficient memory in production. Similarly, a multi-headed logger designed to track slow queries in production led to performance degradation when deployed on a virtualized server. These incidents highlight the importance of ensuring that production and development environments are identical to avoid unpleasant surprises. LogRocket, a service for monitoring errors and exceptions, can help identify and resolve such issues by providing visual replays of user interactions, making it an essential tool for debugging in a production environment.

    • Small mistakes in software development can lead to big problemsThorough testing, attention to detail, and caution are crucial to minimize performance issues and system crashes in software development, especially in production environments.

      Even the smallest mistakes in software development, like outdated packages or multi-threaded synchronization issues, can lead to significant performance degradations or even system crashes. These issues can be especially problematic in production environments where the consequences can be more severe. The speaker shared an experience with a multi-threaded code that caused performance issues and another with an outdated package that brought down an entire website. These incidents highlight the importance of thorough testing, attention to detail, and the potential risks of rushing deployments without proper checks and balances. The speaker also shared a humorous anecdote about holding down the shutdown button on a Windows 95 computer, emphasizing the importance of understanding the consequences of our actions and seeking help when needed. Overall, the key takeaway is to approach software development with caution, especially in production environments, and to always double-check our work before deploying to minimize the risk of performance issues or system crashes.

    • Testing dependencies before deployment to prevent unexpected consequencesAlways test dependencies before deploying code to production to avoid unwanted consequences, such as media displays showing personal photos or extended downtime due to accidental damage.

      It's crucial to thoroughly test and ensure compatibility after updating dependencies before deploying code to production. The speaker shared a personal experience where an untested update led to unwanted consequences, including a media wall displaying his selfies in a high-end store. Another story involved a computer operator spilling a drink on a mainframe, causing significant downtime. To avoid such incidents, consider using a reliable cloud hosting service like Linode, which offers dedicated compute for CPU-intensive workloads and ensures your applications run smoothly without the risk of accidental damage. Linode's services are popular for hosting Node apps, Ruby on Rails apps, and other applications, and they provide a $100 credit for new users, making it an excellent choice for developers.

    • Stories of carelessness leading to lost productivityDouble-check work, test thoroughly, and understand consequences to prevent lost productivity and potential disasters.

      Carelessness and oversight can lead to significant losses in productivity and time. The first story shared involved a developer accidentally deleting important files instead of old print files, leading to a failed demo and loss of 40 hours of work. The second story involved a young developer handling create and update functions in the same block, with the update function still present even after the flow was changed to separate functions. This oversight led to identical data in production, causing confusion and potential issues down the line. These stories serve as reminders to double-check your work, test thoroughly, and ensure that all code changes are properly implemented. It's essential to be meticulous and detail-oriented, especially when dealing with critical projects or systems. Furthermore, these stories highlight the importance of proper testing and understanding the consequences of certain actions. In the first story, the developer could have prevented the disaster by properly testing the delete command or double-checking the files before deleting them. In the second story, proper testing could have revealed the issue with the update function still present in the create function. In conclusion, taking the time to double-check your work, thoroughly test your code, and understand the consequences of your actions can save you from potential disasters and significant losses in productivity and time.

    • Testing code changes in a staging environmentAlways test code modifications in a staging environment to prevent data inconsistencies and costly mistakes.

      It's crucial to thoroughly test code changes in a staging environment before deploying them to production. In the discussed incident, a developer forgot to include the where clause in an SQL query, leading to all records being updated instead of just the intended one. This mistake caused significant data inconsistency and required a backup restoration. To prevent such incidents, developers should have a staging environment that mimics the production environment, test code changes, read code carefully, and perform a dry run of database migrations. Additionally, using services like Mux for video hosting can save developers time and effort by handling video transcoding and delivery. The moral of the story is to be meticulous and take necessary precautions to avoid costly mistakes.

    • Lessons learned from late-night coding and interviewsWorking long hours without rest or being under the influence can hinder productivity. Clear communication is essential during interviews to avoid misunderstandings. Upgrading to new technology can bring convenience and efficiency.

      Working long hours, especially when tired or under the influence, can lead to inefficient and unproductive work. This was a lesson learned the hard way, as staying up all night to solve a bug often resulted in a solution discovered first thing in the morning. Furthermore, the SQL language seems to require explicit updates to prevent unintended consequences, leading to potential frustration. Another story shared involved a consultant's attempt to advance in his career by expressing his desire to take a manager's job during an interview. Unfortunately, the hiring manager misinterpreted his intentions and he was not offered the position. The discussion also touched on the benefits of upgrading to the latest technology, such as the MagSafe charging system on the iPhone 13 Pro Max, which offers convenience and peace of mind. Overall, the stories shared during the discussion highlighted the importance of making good decisions, being aware of potential miscommunications, and embracing new technology to improve productivity.

    • ESR Halo Lock impresses user with phone mounting and charging capabilitiesUser found ESR Halo Lock effective for magnetic phone mounting and charging, despite initial skepticism. Portable air compressor exceeded expectations with automatic inflation and convenience.

      The ESR Halo Lock is a strong and functional magnetic phone mount that can be used even on non-MagSafe phones. The user was initially skeptical but was impressed by its strength and ability to charge the phone. Although it's not as fast as MagSafe, it should charge as fast as other car chargers once a proper adapter is used. The user also shared their experience with a portable air compressor, which exceeded their expectations despite its small size and low cost. It filled up a soccer ball automatically and stopped when full, making it a handy tool for various inflating needs. Overall, both the ESR Halo Lock and the portable air compressor proved to be useful and efficient solutions.

    • Saving time and money with an automatic tire pressure cutoffChecking and adjusting tire pressure without moving compressor saves time and money, preventing uneven tire wear. Explore new courses on Prisma, GraphQL, Astro, and updated React course with discount 'syntax'.

      Having an automatic tire pressure cutoff can save money and time by preventing uneven tire wear. The speaker shared his experience with unreliable tire pressure gauges and the hassle of transporting air compressors to various vehicles. He was pleasantly surprised by the affordability and effectiveness of a new device that allows him to check and adjust tire pressure without moving the compressor. Additionally, the speaker mentioned two upcoming courses on Level Up Tutorials, one on Prisma and GraphQL and the other on Astro, a new tool for writing in any front-end framework and shipping less JavaScript. He highly recommended these courses for anyone interested in learning these technologies. Lastly, he shamelessly plugged his advanced React course, which he had recently updated with new modules on testing and deployment. He encouraged listeners to check it out for comprehensive learning on React, Stripe, ecommerce, GraphQL, Apollo, and more, using the coupon code "syntax" for an extra discount.

    Recent Episodes from Syntax - Tasty Web Development Treats

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    780: Cloud Storage: Bandwidth, Storage and BIG ZIPS

    780: Cloud Storage: Bandwidth, Storage and BIG ZIPS

    Today, Scott and Wes dive into cloud storage solutions—why you might need them, how they use them, and what you need to know about the big players, fees, and more.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    779: Why SQLite is Taking Over with Brian Holt & Marco Bambini

    779: Why SQLite is Taking Over with Brian Holt & Marco Bambini

    Scott and CJ dive into the world of SQLite Cloud with special guests Brian Holt and Marco Bambini. They explore why SQLite is gaining traction, its unique features, and the misconceptions surrounding its use—let’s get into it!

    Show Notes

    • 00:00 Welcome to Syntax!
    • 01:20 Who is Brian Holt?
    • 02:26 Who is Marco Bambini?
    • 05:12 Why are people starting to talk so much about SQLite now?
    • 08:47 What makes SQLite special or interesting?
    • 09:46 What is a big misconception about SQLite?
    • 11:13 Installed by default in operating systems.
    • 12:03 A perception that SQLite is intended for single users.
    • 13:36 Convincing developers it’s a full-featured solution.
    • 15:11 What does SQLite do better than Postgres or MySQL?
    • 17:30 SQLite Cloud & local first features.
    • 20:38 Where does SQLite store the offline information?
    • 23:08 Are you typically reaching for ORMs?
    • 25:00 What is SQLite Cloud?
    • 27:29 What makes for an approachable software?
    • 29:18 What make SQLite cloud different from other hosted SQLite options?
    • 32:13 Is SQLite still evolving?
    • 34:40 What about branching?
    • 37:37 What is the GA timeline?
    • 40:04 How does SQLite actually work?
    • 41:19 Questions about security.
    • 44:28 But does it scale?
    • 45:52 Sick Picks + Shameless Plugs.

    Sick Picks

    Brian: Trainer Road
    Marco: Tennis

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    Spooky Web Dev Stories 2022

    Spooky Web Dev Stories 2022

    In this episode of Syntax, Wes and Scott tell your spookiest scary web dev stories including spooky render times, push notification hell, dark Friday, and more!

    Sentry - Sponsor

    If you want to know what’s happening with your code, track errors and monitor performance with Sentry. Sentry’s Application Monitoring platform helps developers see performance issues, fix errors faster, and optimize their code health. Cut your time on error resolution from hours to minutes. It works with any language and integrates with dozens of other services. Syntax listeners new to Sentry can get two months for free by visiting Sentry.io and using the coupon code TASTYTREAT during sign up.

    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.

    Freshbooks - Sponsor

    Get a 30 day free trial of Freshbooks at freshbooks.com/syntax

    Show Notes

    ××× SIIIIICK ××× PIIIICKS ×××

    Shameless Plugs

    Tweet us your tasty treats

    Paul's Security Weekly #528 - DDos Campaign for Memes

    Paul's Security Weekly #528 - DDos Campaign for Memes

    Larry Pesce and Dave Kennedy hold down the fort in Paul’s absence! Kyle Wilhoit of DomainTools delivers a tech segment on pivoting off domain information, Dave talks about the upcoming DerbyCon, and we discuss the latest information security news!


    Full Show Notes: https://wiki.securityweekly.com/Episode528


    Visit https://www.securityweekly.com for all the latest episodes!

    Hasty Treat - Web Dev Resource Sick Picks

    Hasty Treat - Web Dev Resource Sick Picks

    In this Hasty Treat, Scott and Wes talk about all of their favorite web dev resources — a full episode of sick picks!

    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.

    Show Notes

    2:03 - Twitter Accounts

    5:00 - Web Dev Resources

    7:37 - Design Resources

    11:36 - Desktop Tools

    14:59 - YouTube

    Links

    Tweet us your tasty treats!

    Ep. 36: Intro to Cross Site Request Forgery (CSRF)

    Ep. 36: Intro to Cross Site Request Forgery (CSRF)

    In this episode, James talks about what CSRF is, why it is a risk, and different ways to protect against it.  CSRF is #8 on the OWASP Top 10 https://www.owasp.org/index.php/Top_10_2013-A8-Cross-Site_Request_Forgery_%28CSRF%29

     

    Want to learn more about application security?  Check out https://www.developsec.com.  Follow us at @developsec on twitter.