Logo
    Search

    Potluck — Do titles matter? × Should clients pay for plugins? × Can I debug my baby? × How we prepare for Syntax × Deno × Learning things quickly × More!

    enFebruary 17, 2021

    Podcast Summary

    • Handling Promise Rejections and Rolling Back ChangesUse try-catch or dot catch to handle promise rejections and create a rollback function to remove unwanted changes from the database. Consider using promise all settled for independent promises.

      When dealing with promise rejections and the need to roll back changes made during a promise chain, it's essential to use a try-catch block or a dot catch at the end of the promise chain. In the catch block, you can create a function to handle the rollback logic. This function can determine the current step in the process and remove any unwanted changes from the database. The use of promise all settled can also be considered if the promises do not depend on one another, allowing for a check once all promises have been resolved. This approach ensures that any issues are handled effectively and efficiently. Additionally, the discussion touched upon the importance of understanding the sequence and concurrency of promises, as well as the benefits of using tools like Prismic, LogRocket, and Cloudinary to enhance web development projects.

    • Managing Technical Aspects of a ProjectAwait each function's result and determine next action. Non-technical clients shouldn't manage code repositories.

      Managing and handling technical aspects of a project, especially when it comes to code repositories, can be a complex issue. In the context of the discussion, it was noted that manually fixing errors inside a promise.all can lead to complications, and it's generally better to await the result of each function and determine the next action based on the success or failure of the previous one. Another question touched on the challenge of having non-technical clients manage and hold onto the code repositories for their projects. The speaker suggested that it's not ideal to have clients set up their own GitHub accounts and grant access to developers, as it can lead to potential complications and ongoing responsibilities. Instead, the developer suggested holding the repositories themselves or having clients sign up for GitHub accounts to hold the websites. In summary, managing technical aspects of a project, such as error handling and code repository management, can be complex. It's generally better to await the results of each function and determine the next action based on the success or failure of the previous one. Additionally, it's not ideal for non-technical clients to manage and hold onto the code repositories for their projects, and developers may want to consider holding the repositories themselves or having clients sign up for GitHub accounts to hold the websites instead.

    • Providing new developers access to the codebase for effective collaborationInvolve new developers in projects and provide them access to the codebase for efficient contribution and knowledge transfer.

      As a developer, having access to the source code repository, such as GitHub or Git, is essential for effective collaboration and knowledge transfer. It's a good practice to involve new developers in existing projects and provide them with access to the codebase. This not only helps them understand the project's history but also allows them to contribute more efficiently. Regarding the second question, the definition of a full-stack developer and the associated salary can vary greatly depending on the organization. A full stack developer is someone who can work on both the front-end and back-end of a project. However, job titles and their corresponding salaries are not always directly related. It's essential to understand the internal pay structure of your organization and assess your value based on your skills and contributions rather than your job title. If you feel underpaid, it's appropriate to ask for a raise in a tactful manner. However, the request should be based on your skills and contributions, not just your job title.

    • Clear communication and transparency are essential for salary raises and client expensesDiscuss salary raises based on workload and communicate transparently about client expenses to maintain healthy relationships.

      When it comes to asking for a raise or handling expenses while working on client projects, clear communication and transparency are key. For raising a salary, it doesn't matter if you're a part-time or full-time developer; if you feel you're taking on a full stack developer's workload, you should ask for a raise. Regarding expenses, when purchasing necessary tools or plugins for client projects, it's generally recommended to either pay for them yourself and write off the expense or include the cost in the project price. However, it's essential to discuss this with the client upfront and be transparent about any additional costs. If the expense involves a monthly subscription, it's better to have the client subscribe and pay directly to avoid potential complications. Remember, clear communication and transparency are crucial for maintaining a healthy working relationship with your clients.

    • Clear communication and transparency in projectsUse existing solutions to avoid unexpected costs and features, communicate clearly, and be prepared for unexpected situations

      Clear communication and transparency are crucial in any project, especially when it comes to unexpected costs or requirements. Wes discussed the importance of using existing solutions and plugins to avoid feature requests and surprise charges. He highlighted Prismic, a headless CMS, as an example of a reliable and feature-rich solution for website development. On a lighter note, Wes shared a relatable experience of trying to debug and solve problems, even when it comes to unexpected situations like a crying baby. He emphasized the importance of being prepared and informed, whether it's for a technical project or becoming a new parent. The clear communication and problem-solving skills that Wes demonstrated throughout the discussion are valuable lessons for anyone in the tech industry or in life in general.

    • Debugging life's problems with determination and a methodical approachCollect information, try solutions, and update understanding to effectively solve problems in life and tech

      The speaker approaches problem-solving with determination and a methodical approach, whether it's debugging a baby's crying or fixing technical issues. He emphasizes the importance of collecting information, trying solutions, and updating your understanding as needed. The speaker shared an experience of debugging his baby's crying by trying various solutions from a list. He found that this approach was effective most of the time, and if not, they would switch things up or seek help. He also mentioned that this methodical and persistent approach is valuable in all areas of life, including troubleshooting technology. The speaker also shared his podcast preparation process, which involves jotting down ideas and deciding on topics the morning of recording. He noted that the process can be a bit unpredictable, as topics can depend on his emotional state and current interests. Overall, the speaker's approach to problem-solving and creativity is one of persistence, flexibility, and a willingness to adapt based on new information.

    • Consistency is key in creating and growing a content platformConsistently recording and releasing content on a schedule helps improve skills, inspire creativity, and build a large audience.

      Consistency is key in creating and growing a successful content platform. Wes and the speaker have a consistent recording schedule for their podcast, and they find that this consistency not only helps them provide valuable content to their audience but also helps them improve their skills and stay inspired. They also plan their topics in advance, based on their personal learning and current trends in their industry. The speaker emphasizes that missing a scheduled release can lead to a lack of growth and value for the audience. He shares his personal experience of consistently recording videos for YouTube, which led to a large subscriber base. Therefore, setting up a schedule and sticking to it is crucial for anyone looking to build a successful content platform.

    • Rendering images with JavaScript from a server folderJavaScript can load images from a server folder using the file input element and data URI to render them on a page

      JavaScript can be used to dynamically render images from a folder on a server, making it a viable solution for the user's question without needing to learn new technologies like Node or React yet. During the podcast, the hosts discussed their routine of recording episodes ahead of time and shared their experience with using LogRocket for debugging issues on websites. A listener named Joseph from Des Moines, Iowa, asked for help with loading multiple images from a folder and rendering them on a page using JavaScript. The hosts suggested that JavaScript can handle this task by using the file input element and accessing the returned array of files. However, they noted that the more significant challenge might be reading the files off the server, which could be achieved by using a data URI and setting it as the image source tag. Overall, the discussion highlighted the versatility of JavaScript and the importance of being resourceful when solving programming problems.

    • Displaying images from a folder without a server-side component is not possibleA server-side language like PHP is required to read a directory and send image list back to client for displaying images on website

      Displaying images from a folder on a website without a server-side component is not possible due to security reasons. JavaScript cannot read the contents of a folder on a server from the client side. To achieve the desired functionality, a server-side language like PHP is required to read the contents of a directory and send a list of images back to the client-side as an API. This allows JavaScript to fetch the list and display the images on the front-end. When considering the ease of implementation, a PHP server is a better option than Node due to the complexity involved in setting up and restarting a Node process for every image upload. The discussion also touched upon different approaches like using the file reader API, Dropbox API, or a UI images folder, but these methods have their limitations and require additional considerations.

    • Using queues and serverless functions for efficient large-scale cron jobsTo manage large-scale, daily cron jobs with multiple notifications, use queues and serverless functions for efficient processing, optimal performance, and cost-effectiveness. Queues help process tasks as they become available, while serverless functions scale resources only to the specific function that requires more power.

      For handling large-scale, daily cron jobs with multiple notifications, such as sending emails and text messages, it's more efficient to use queues and serverless functions. Queues help process tasks as they become available, preventing the entire process from being held up if one step takes longer than expected. Serverless functions, on the other hand, allow scaling resources only to the specific function that requires more power, ensuring optimal performance and cost-effectiveness. This approach also helps manage failures, as failed tasks can be retried without affecting the entire process. This was discussed in detail, drawing from personal experiences with sending daily emails and dealing with long-running tasks. The use of queues and serverless functions was suggested as a solution to avoid potential issues with long execution times and the risk of entire processes breaking down.

    • Learning through building projectsBuilding projects with a small to medium scope in a new technology helps gain a deep understanding of its capabilities and use cases. Recognize different tools' applications for optimal value.

      When learning a new technology or tool, building small to medium-sized projects is an effective way to gain a deep understanding of its capabilities. The speaker shared his experience with the queuing library in Meteor and how he was fascinated by it, even though he didn't have a use for it at the time. He mentioned how tools like RabbitMQ and serverless functions can be used for processing queues efficiently and cost-effectively. When it comes to learning a new technology like Deno, the speaker suggested building projects with a small enough scope to finish but large enough to touch on various aspects of the technology. He emphasized that just building one project won't give you a comprehensive understanding. The speaker also mentioned his experience with learning TypeScript by building several projects in it and encountering new concepts with each one. Additionally, the speaker mentioned the importance of recognizing the use cases for different tools and technologies and how they can be applied in various scenarios. For instance, queues are useful for handling large batches of tasks that require significant resources, such as PDF generation or video conversion, without overwhelming the server or requiring ongoing payments for unused resources. In summary, building projects is an effective way to gain a deep understanding of new technologies, and recognizing their use cases and applications can help maximize their value.

    • Using small projects and full immersion to learn new technologiesEffectively learn new technologies by combining small projects and full immersion, such as creating a contract generator to understand server-side languages, and prioritize hands-on experience over excessive reading.

      Learning new technologies, especially coding, can be made more effective through a combination of small projects and full immersion. Wes Bos, a guest on Syntax, shared his experience of using small projects to learn new skills, such as creating a contract generator when learning a server-side language. This approach not only helps in understanding the basics but also teaches more advanced concepts like building command-line tools and reading error messages. Furthermore, Wes emphasized the importance of hands-on experience over endless reading of documents and source code. Additionally, a correction was made regarding running Dino in watch mode, with the updated information being that since version 1.4, Dino has had its own watch mode, which can be activated by using the command "hyphen hyphen watch" after "Dino run."

    • Setting font sizes in HTML with percentagesUsing percentages instead of fixed pixel values in HTML for font sizes allows users to adjust the text size to their preferences, enhancing accessibility.

      The hosts of the show discussed the importance of considering accessibility in web design, specifically when it comes to setting font sizes in HTML. They shared that using a percentage (62.5%) instead of a fixed pixel value (10px) allows users to adjust the font size according to their preferences. The hosts also shared their excitement about new tools they've discovered, such as a high-quality, affordable USB rechargeable headlamp. Additionally, they mentioned the challenges of keeping up with the rapid changes in the Deno programming language and the importance of issuing corrections when necessary. Overall, the conversation highlighted the importance of staying informed and prioritizing user experience in both technology and design.

    • New appreciation for aromatic tea cold brewed with a makerDiscovered ease and control of cold brew tea maker led to daily enjoyment of aromatic tea and adherence to one cold brew limit per day, while also exploring advanced web development tools like React, GraphQL, and Cypress.

      The speaker discovered a new appreciation for aromatic tea cold brewed using a cold brew tea maker as a gift. He was initially skeptical, being a fan of traditional tea and not typically drawn to aromatic teas. However, the ease of use and the ability to control the strength of the brew opened up a new world of tea enjoyment for him. He now uses it daily, even incorporating it into his self-imposed one cold brew limit per day. The speaker also shared his excitement about his latest courses on Advanced React and GraphQL, and Cypress, highlighting the benefits of using these tools for creating and testing modern web applications.

    • Test code generation tool from Leveluptutorials.comLeveluptutorials.com provides a testing tool that generates code for writing tests and offers courses as part of a monthly subscription

      Leveluptutorials.com offers an innovative testing tool that writes code for you to create tests, allowing users to input their assertions without writing navigation code. This tool is part of a monthly subscription, which also includes courses from the creators and guest instructors. It's an efficient and user-friendly solution for testing websites, and if you're interested in learning more about testing or improving your coding skills, you should check it out at leveluptutorials.com. Don't forget to sign up for the course and explore the full archive of shows on Syntax.fm.

    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

    How Do You Build Cool Stuff That Matters?

    How Do You Build Cool Stuff That Matters?
    In the second season, Digital Thread Bytes hosts Jennifer Gravitt and Elizabeth Generas investigate the applications of the Digital Thread in the real world. In this episode, we interview AJ Rollings, owner and President of Cat-Wood Metalworks. Cat-Wood is a machine shop in Dayton, Ohio that is the site of a major digital overhaul. Join us to find out more about the outcomes of the project and the long-term strategy for growth made possible by digital transformation!

    Don Christie with Catalyst IT

    Don Christie with Catalyst IT

    Catalyst IT develops & supports expert open source solutions: UX and design, eLearning, website development, training, library management, enterprise solutions, document management & cloud hosting. With 25 years of experience, Catalyst IT has worked with organisations across the globe, spanning all sectors. It now has 400 people, with offices in New Zealand, Australia, Canada, and the UK.

    www.catalyst.net.nz

    001. Wakelet: Inside The Wake

    001. Wakelet:  Inside The Wake

    On the debut of EdTech Stories, we profile the company Wakelet in this episode called “Inside The Wake.”  Wakelet is a company and platform created by Jamil Khalil, a former Airbus employee, who sought an easier way to organize the abundance of information available on the internet.  He overcame several obstacles in his path to develop a platform which makes it easier to organize the web. Through some hard work, perseverance, and of course a little luck, Jamil and his team at Wakelet have designed Wakelet - a platform used by millions of educators each year.  

    This episode features commentary from:

    Music:

    • “Invincible” by Def Kev (No Copyright Sounds)
    • “Le Freak” by RAGE (YouTube Audio Library)
    • “Chef Brian” by Latasha (YouTube Audio Library)
    • “Space Navigator” by Sarah The Illusionist (YouTube Audio Library)
    • “We March Together” Patrick Patrikios (YouTube Audio Library)
    • “Good Times” Patrick Patrikios (YouTube Audio Library)

     

    Find more information on this episode at:

    http://www.EdTechStories.com

    Follow EdTechStories on Twitter at @HearEdTech  

     

    We would love for you to write an honest review of EdTech Stories!  



     

     

    106 - Learning in the deep (feat. Teddy Necsoiu)

    106 - Learning in the deep (feat. Teddy Necsoiu)

    In this episode, Teddy has decided to talk 1's and 0's to us until our brain's leak out our ears! All in the name of learning and self-improvement. We talk all about ALUs, microprocessors and wafers, OH MY!

    Listeners are encouraged to listen to our experiences and use them to decide how they will conduct themselves in their career. This podcast is not instructional but somewhat therapeutic for the hosts.

    Teddy's Socials

    Twitter: @teddynecsoiu

    If you want to hear more episodes check out our website at https://tabsandspaces.io

    Tweet at us @tabsnspacesHQ

    Or do you have a developer-related question or issue that you'd like to talk to us about in one of our episodes? Please shoot us an email at tabsandspacesHQ@gmail.com We'll send you a sticker if you do!

    Show Intro music Unity by Fatrat: https://www.youtube.com/watch?v=n8X9_MgEdCg