Logo
    Search

    Podcast Summary

    • Git Horror StoriesBe cautious when using Git commands and double-check directories to prevent accidental deletions and conflicts.

      Using Git commands carelessly can lead to disastrous consequences. In this episode of Syntax FM's Halloween edition, the hosts shared some spooky web development horror stories sent in by listeners. The first story was about a junior developer who accidentally ran "git clean" from the root directory of his MacBook, deleting all his files and losing client projects. The developer learned the hard way that "git clean" removes everything from the directory that's not part of the current Git repo. Another story was about a team using Git for their Magic: The Gathering card game project, which led to unintended merges and conflicts. These stories serve as reminders to always double-check your commands and directories before executing them, especially when working on important projects. The episode was sponsored by LogRocket and Sanity, two companies that can help developers avoid such mishaps by providing tools for debugging and managing content, respectively.

    • Learning on the job can lead to costly mistakesFollowing best practices in development, such as using a development environment and double-checking code, can prevent costly mistakes and save time and resources.

      Neglecting good development practices can lead to disastrous consequences. The story shared involves a full-time teacher who worked at a local game store and took over managing the ecommerce site. Since he was learning on the job, he made the mistake of editing code live in production, which resulted in overwriting all inventory data with data from a single card for a new trading card game. This mistake led to the loss of stock quantities for over 100,000 Magic the Gathering cards, requiring manual data entry to rebuild the inventory. The incident taught him the importance of having a development environment and double-checking code before implementing it. The incident also highlighted the potential value of having extensive databases in stores selling collectibles. Despite the initial shock and the time-consuming aftermath, the incident became a joke among colleagues, and the teacher even earned a nickname from it. Ultimately, the experience served as a reminder of the importance of following best practices in development to avoid costly mistakes.

    • The Importance of Proper Testing and Validation in Software DevelopmentNeglecting testing, validation, and addressing known vulnerabilities can lead to user frustration, security vulnerabilities, and potential data breaches. Proper testing and validation are crucial to maintaining the security and integrity of software systems.

      Proper testing and validation are crucial in software development to prevent potential security vulnerabilities and user confusion. The first story illustrates the importance of having backups and being cautious when making changes in production. Overwriting 100,000 Magic the Gathering cards without a backup resulted in a significant loss and a low "candy corn" rating for the situation. The second story highlights the importance of checking the validity of tokens in forms, especially in passwordless sign-up systems. Failing to do so can lead to account hijacking and serious security breaches. In the third story, the sequential user IDs made it easy for attackers to gain unauthorized access to accounts. These stories serve as reminders that developers must be vigilant and thorough in their testing and validation processes. The consequences of neglecting these steps can range from user frustration to serious security vulnerabilities. The last story about Adam J Sontag emphasizes the importance of addressing known vulnerabilities promptly. In the world of software development, staying informed about the latest security threats and addressing them promptly is essential to maintaining the security and integrity of systems. In summary, proper testing, validation, and addressing known vulnerabilities are essential components of software development. Neglecting these steps can lead to user frustration, security vulnerabilities, and potential data breaches.

    • Unexpected failures in popular systemsEven the most stable systems can experience unexpected failures due to human error or other unforeseen circumstances. Proper backups are essential to minimize the impact and prevent data loss.

      Even the most popular and seemingly stable systems can experience unexpected and catastrophic failures. In the case of jQuery, a member of the core team accidentally deleted the entire plugins registry during a time when SEO spamming and user deception were rampant. The only backup was over a year old, leading to a public apology and a rebuild on Git and GitHub. This incident ultimately pushed the community towards using package managers instead. Another example comes from GitLab, where an engineer inadvertently deleted a significant portion of their database, resulting in lost data. These incidents serve as reminders of the importance of proper backups and the potential consequences of human error. While these stories may seem spooky, they highlight the reality that mistakes can and do happen, and it's crucial to be prepared for the unexpected.

    • Local CMS for faster development with security benefitsUsing a local CMS like Sanity for development saves time, offers image resizing and cropping, version control, and lets you use your own React components. It also ensures secure handling of sensitive information by allowing developers to edit content locally before implementation.

      Using a local structured content CMS like Sanity can save developers time and potential headaches by allowing them to work on their codebase without constantly switching between a UI and their code. Sanity offers features like image resizing and cropping, version control, and the ability to use your own React components. This was demonstrated through the speaker's experience with a sensitive bug in educational management software, where a mass email of confidential information was sent out due to a hasty fix. The consequences were severe, leading to a public reprimand from the CEO. The use of a local CMS could have potentially prevented this issue by allowing the developer to thoroughly test and review their changes before implementation. Sanity's local development capabilities offer a solution to this problem by enabling developers to edit content locally, ensuring that sensitive information remains secure and reducing the likelihood of similar errors occurring.

    • Personal experiences of technology mishapsThorough testing, quality assurance, and attention to detail are crucial to prevent technology errors, which can cause anxiety, embarrassment, and potential harm.

      Technology mishaps can lead to significant consequences, causing anxiety, embarrassment, and even potential harm. The speaker shared personal experiences of accidentally sending out private information in emails and a bug that allowed students to access and change each other's grades. These incidents highlight the importance of thorough testing and quality assurance to prevent such errors. Another story involved an off-by-one bug that granted unintended access to user information, demonstrating the potential danger of seemingly minor coding mistakes. Lastly, a mistake in using random text during website development led to a widespread issue, emphasizing the need for careful attention to detail. These stories serve as reminders of the potential risks and repercussions of technology errors, making it crucial to prioritize testing, quality assurance, and attention to detail.

    • The importance of intentional coding practicesSmall coding mistakes or unconventional workarounds can cause confusion and significant consequences, emphasizing the need for clear and intentional coding practices to avoid costly mistakes and maintainability issues.

      Even small coding mistakes or unconventional workarounds can have significant consequences in software development. The first example shared involved using a "bull" mutation as a workaround in a codebase, which may seem insignificant but caused confusion for others. The second example was a more serious issue, known as a waterfall problem, where the entire admin tool relied on a long list of script tags loading in a specific order, resulting in a deeply broken site. These issues highlight the importance of clear and intentional coding practices, as well as the potential risks of making assumptions about the dependencies in a codebase. Additionally, the speaker mentioned the challenges of working with outdated technologies and the relief that comes with the advancements of modern tools and techniques. It's important for developers to be mindful of these potential pitfalls and strive for clean, maintainable code to avoid costly mistakes and confusion for themselves and their teams.

    • The Challenges and Costs of Outdated Software in MagentoOutdated Magento versions can cause significant issues with security, performance, and time. Upgrading can be a complex and time-consuming process, but neglecting it can lead to more serious problems. Tools like LogRocket can help make debugging more efficient.

      Outdated software, specifically Magento versions, can lead to significant challenges and costs in terms of security, performance, and time. The speaker shares a personal experience of advising a client to upgrade from Magento 1.7 to 2.3, which was estimated to take a year, but even by September 2019, the process hadn't started. This situation is a common fear in the Magento development community due to the notorious difficulties in upgrading. The conversation then shifts to a humorous anecdote about a customer who experienced full-screen John Cena pop-ups while using an application, caused by a Chrome extension. Although amusing, the speakers remind developers to avoid such distractions in their professional environment. The conversation concludes with an introduction to LogRocket, a service that provides session replays to help developers understand the user actions leading to bugs and errors, making debugging more efficient and effective. Overall, the discussion highlights the importance of addressing software upgrades in a timely manner and the benefits of using tools like LogRocket to enhance the debugging process.

    • Neglecting proper development practices can lead to costly mistakesProper security measures, backups, testing, and caution are crucial to prevent significant losses and setbacks in development. Use advanced debugging tools and prioritize development practices to avoid pitfalls.

      Neglecting proper development practices and environments can lead to significant losses and setbacks. This was exemplified in a story about a plumbing company that attempted to build their entire site within the admin editor, only to accidentally wipe out all their progress by migrating to an older database version. Another story involved a financial institution using an account number as a primary key, allowing unauthorized access to customer statements. These incidents highlight the importance of implementing proper security measures and backups to prevent such costly mistakes. Additionally, the use of advanced debugging tools like LogRocket can help developers identify and eliminate "spooky bugs" more efficiently. The importance of thoroughly testing changes and being cautious when making updates, especially in production environments, cannot be overstated. Furthermore, the use of front matter and metadata in development was also discussed, with a cautionary tale about an e-commerce site where a seemingly simple front matter edit caused the site to go down, resulting in a significant loss of revenue. These stories serve as reminders for developers to exercise caution and thoroughness in their work, and to prioritize proper development practices to avoid potential pitfalls.

    • Mistakes in coding can lead to significant issuesAdhere to coding best practices to prevent errors and unexpected crashes. Avoid 'cowboy coding' practices and implement code reviews or continuous integration for quality assurance.

      Even the smallest mistake in coding, like accidentally formatting a file in the wrong way, can lead to significant issues. This was experienced by the speaker when they inadvertently indented YAML code while working on an HTML project, rendering the entire YAML invalid. Despite the error being due to an automated code formatter, the speaker was fortunate that the client was understanding and cool about the situation. However, such incidents can be avoided by implementing proper coding practices, such as code reviews or continuous integration, which can help prevent errors from going unnoticed. Moreover, the discussion touched upon the common theme of "cowboy coding," where developers make quick changes directly on the server without proper testing or approval. Such practices can lead to unexpected crashes and issues, as highlighted by the speaker's experience and other anecdotes shared during the conversation. On a lighter note, the conversation also included some entertaining stories and recommendations for interesting subreddits, such as "absolute units," which showcases large objects and people. Overall, the discussion underscored the importance of adhering to coding best practices and the value of sharing experiences and learning from each other.

    • Improve daily life with a high-quality cordless vacuum and skills coursesUpgrade to a premium cordless vacuum for effective cleaning in older homes. Learn new skills through affordable courses to expand knowledge and grow personally.

      Investing in a high-quality cordless vacuum cleaner, such as the Dyson model mentioned, can significantly improve your daily life and keep your home cleaner, even in older houses with high dust generation. The vacuum's long-lasting battery, powerful suction, and versatile attachments make it a must-have for regular cleaning tasks. Additionally, taking advantage of deals at stores like Costco can help you save money on this essential home appliance. Furthermore, for those interested in learning new skills, there are various educational resources available, like courses on websites such as Westboss.com and Leveluptutorials.com. These courses offer valuable content for individuals looking to expand their knowledge in areas like web development using technologies like React, Next.js, Apollo, and MongoDB. While some courses may require payment, taking advantage of promotional codes can help reduce costs. In summary, investing in a top-tier cordless vacuum and committing to learning new skills through courses can greatly enhance your daily life and contribute to long-term personal growth.

    • Transitioning from Meteor to Next.js with API routesThe use of API routes in Next.js simplifies the migration process from Meteor, allowing developers to remove Meteor elements and have greater control over containers.

      The new version of LevelUp tutorials is an exciting upgrade for developers looking to migrate from Meteor to Next.js. The use of API routes in Next.js has made the transition seamless for the developer in question, who was previously dealing with an API that was contained within one folder in Meteor. The ability to remove the Meteor elements and point the Next.js application to a single file for migration was a game-changer, offering greater control over containers. This shift is sure to provide more flexibility and autonomy for developers in managing their applications. Overall, the adoption of Next.js API routes represents a significant step forward in the development world, particularly for those making the move from Meteor.

    Recent Episodes from Syntax - Tasty Web Development Treats

    789: Do More With AI - LLMs With Big Token Counts

    789: Do More With AI - LLMs With Big Token Counts

    Join Scott and CJ as they dive into the fascinating world of AI, exploring topics from LLM token sizes and context windows to understanding input length. They discuss practical use cases and share insights on how web developers can leverage larger token counts to maximize the potential of AI and LLMs.

    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

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    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

    Related Episodes

    Hasty Treat - Hasty Horror Stories

    Hasty Treat - Hasty Horror Stories

    In this Hasty Treat, Scott and Wes talk about web dev horror stories — real things that have happened to real developers

    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 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.

    Show Notes

    03:36 - https://twitter.com/CameronPak/status/1445051951843061767

    04:48 - https://twitter.com/susanlangenes/status/1445049321871712257

    05:29 - https://twitter.com/DevJordanW/status/1445052979644706823

    06:12 - https://twitter.com/HerbieDuah/status/1445088892177108994

    07:04 - https://twitter.com/bbbryan14/status/1445400072921956357

    07:43 - https://twitter.com/stephendennis30/status/1445074683062362114

    07:59 - https://twitter.com/Tim__Moran/status/1445102727701221377?s=20

    08:37 - https://twitter.com/SoyAlejandroAl/status/1445063677896450048

    09:34 - https://twitter.com/sudonetizen/status/1445132694531231760

    11:09 - https://twitter.com/chrislaughlin/status/1445049210840178690?s=20

    11:58 - https://twitter.com/sbitaxi/status/1445208793072156675

    12:44 - https://twitter.com/AlexHBruns/status/1445067663919755269

    13:05 - https://twitter.com/costerad/status/1445069263568580616

    14:02 - https://twitter.com/gcnx86/status/1445045635250638853

    14:25 - https://twitter.com/JustMetMe_app/status/1445041678167920640

    14:47 - https://twitter.com/alanshortis/status/1445048899899645959

    15:50 - https://twitter.com/Swizec/status/1445191324215353347

    16:17 - https://twitter.com/_RobJohansen/status/1445137057236467722

    17:14 - https://twitter.com/fienen/status/1445040513678196743

    17:57 - https://twitter.com/TechBill777/status/1445172824822452226

    18:54 - https://twitter.com/Zircoz/status/1445041440770252806

    Links

    Tweet us your tasty treats!

    Backups zijn cruciaal voor je securitystrategie. Test jij weleens een recovery?

    Backups zijn cruciaal voor je securitystrategie. Test jij weleens een recovery?

    Dat je als organisatie backups moet maken is algemeen bekend. Het is inmiddels waarschijnlijk de "last line of defense" in je security-strategie. Wat we echter zien is dat veel bedrijven hun backupstrategie niet op orde hebben. De taak van een backupadministrator is namelijk veel complexer geworden. Daarnaast vergeten veel bedrijven om de staat van hun backups te verifiëren, ze testen maar zelden door een recovery uit te voeren.

    Het maken van backups is moeilijker geworden, vroeger moest de administrator gewoon alles op het bedrijfsnetwerk backuppen. Als er applicaties en data bijkwamen was dat overzichtelijk en werden die ook meegenomen. Vandaag de dag zien de infrastructuur en het applicatielandschap er heel anders uit. Organisaties maken niet langer enkel gebruik van het eigen on-premise netwerk, maar ze gebruiken ook SaaS-applicaties, denk bijvoorbeeld aan Microsoft 365, Salesforce, SAP, Slack, Teams, Box, Dropbox en zo kunnen we nog wel even doorgaan. Al die applicaties zijn als het ware data silo's. Hier bevindt zich data van je organisatie en die is in veel gevallen net zo cruciaal als de data die vroeger on-premises stond opgeslagen. Saas-leveranciers maken in principe nooit backups van je data, die verantwoordelijkheid ligt bij de gebruiker. Ook Microsoft en Salesforce leggen die verantwoordelijkheid bij de klant. Je moet als organisatie dus een goed backupplan hebben, en zichtbaarheid binnen de organisatie welke data essentieel is en hoe die gebackupd kan worden. 

    Ook zijn backups een onderdeel geworden van de securitystrategie. Steeds meer bedrijven worden slachtoffer van ransomware en dan zijn backups vaak een laatste redmiddel. Helaas hebben cybercriminelen dat ook in de gaten, dus backups zijn nu ook een doelwit van criminelen. Daarmee ontstaat de behoefte vanuit organisaties om backups nog veiliger op te slaan. Zaken als air-gapped en immutable backups zijn noodzakelijker geworden. Dit soort technieken komen er op neer dat backups niet meer toegankelijk of aangepast kunnen worden door cybercriminelen.  Ook het controleren van de integriteit van je backups is noodzakelijker geworden. Dit en meer bespreken we allemaal in deze Techzine Talks.