James Ives
https://jamesiv.es
Collection of thoughts about Software Development, Design, and other things.Tue, 01 Apr 2025 17:47:28 GMThttps://validator.w3.org/feed/docs/rss2.htmlFeed for Node.jsJames Iveshttps://jamesiv.es/images/logo.png
https://jamesiv.es
All rights reserved 2025, James Ives<![CDATA[F45 Broke Their Strava Integration So I Wrote My Own]]>
https://jamesiv.es/blog/experiment/javascript/2025/03/14/f45-broke-my-beloved-strava-integration
https://jamesiv.es/blog/experiment/javascript/2025/03/14/f45-broke-my-beloved-strava-integrationFri, 14 Mar 2025 14:00:00 GMT<![CDATA[They broke my beloved Strava integration, and I'm not happy about it. Let's fix it.]]><![CDATA[Documenting Web Components With Storybook]]>
https://jamesiv.es/blog/frontend/javascript/2025/02/19/documenting-web-components-with-storybook
https://jamesiv.es/blog/frontend/javascript/2025/02/19/documenting-web-components-with-storybookWed, 19 Feb 2025 14:00:00 GMT<![CDATA[In this article, I want to discuss how you can easily document your Web Components with Storybook so that your documentation provides a good user and developer experience.]]><![CDATA[Improving Code Quality with Linting]]>
https://jamesiv.es/blog/leadership/2024/10/11/improving-code-quality-with-linting
https://jamesiv.es/blog/leadership/2024/10/11/improving-code-quality-with-lintingFri, 11 Oct 2024 14:00:00 GMT<![CDATA[Code linting is a great way to ensure that your codebase is consistent and that you're following best practices.]]><![CDATA[Figma Config 2024]]>
https://jamesiv.es/blog/frontend/design/2024/06/29/figma-config-2024
https://jamesiv.es/blog/frontend/design/2024/06/29/figma-config-2024Sat, 29 Jun 2024 18:00:00 GMT<![CDATA[My experience at the 2024 Figma Config conference and some pictures I took there.]]><![CDATA[Half-Life Dedicated Server With Docker]]>
https://jamesiv.es/blog/experiment/docker/2024/06/20/half-life-dedicated-server-with-docker
https://jamesiv.es/blog/experiment/docker/2024/06/20/half-life-dedicated-server-with-dockerThu, 20 Jun 2024 11:00:00 GMT<![CDATA[Learn how to create a Half-Life Dedicated Server instance using Docker including the ability to add custom configurations, mods and plugins.]]><![CDATA[Demystifying Web Components]]>
https://jamesiv.es/blog/frontend/javascript/2024/03/26/demystifying-web-components
https://jamesiv.es/blog/frontend/javascript/2024/03/26/demystifying-web-componentsSat, 23 Mar 2024 11:00:00 GMT<![CDATA[Learn how to build Web Components and why they're a great choice for your next project.]]><![CDATA[Visual Testing Storybook with Playwright]]>
https://jamesiv.es/blog/frontend/testing/2024/03/11/visual-testing-storybook-with-playwright
https://jamesiv.es/blog/frontend/testing/2024/03/11/visual-testing-storybook-with-playwrightMon, 11 Mar 2024 11:00:00 GMT<![CDATA[Learn how to setup visual regression tests with Playwright and Storybook.]]><![CDATA[Let's Chat About Design System Tokens]]>
https://jamesiv.es/blog/frontend/design/2023/09/25/lets-chat-about-design-system-tokens
https://jamesiv.es/blog/frontend/design/2023/09/25/lets-chat-about-design-system-tokensMon, 25 Sep 2023 11:00:00 GMT<![CDATA[This article will focus on Design Tokens, one of the core elements of a design system. The hope is that if you're not familiar with the concept, you'll walk away with a better understanding of what they are and how they can be used.]]><![CDATA[Syncing Figma Variables and Style Dictionary with GitHub Actions]]>
https://jamesiv.es/blog/frontend/design/2023/08/01/syncing-figma-variables-with-github-actions-and-styledictionary
https://jamesiv.es/blog/frontend/design/2023/08/01/syncing-figma-variables-with-github-actions-and-styledictionaryTue, 01 Aug 2023 11:00:00 GMT<![CDATA[Supporting your design system with Figma Variables.]]><![CDATA[Fostering Positive Change with Innovation Week]]>
https://jamesiv.es/blog/leadership/2023/07/21/fostering-positive-change-with-innovation-week
https://jamesiv.es/blog/leadership/2023/07/21/fostering-positive-change-with-innovation-weekFri, 21 Jul 2023 11:00:00 GMT<![CDATA[Innovation Week is a week-long event that brings together teams to work on new ideas and projects to help us grow and improve ourselves and our products.]]><![CDATA[Add your GitHub Sponsors to your project README with Actions]]>
https://jamesiv.es/blog/github/actions/2023/06/30/add-your-github-sponsors-to-your-project-readme
https://jamesiv.es/blog/github/actions/2023/06/30/add-your-github-sponsors-to-your-project-readmeFri, 30 Jun 2023 11:00:00 GMT<![CDATA[A simple way to add some value to your GitHub Sponsorship tiers with the help of GitHub Actions.]]><![CDATA[Curse you, Global Entry. Using the CBP API to watch for appointments]]>
https://jamesiv.es/blog/experiment/javascript/2023/06/07/curse-you-global-entry
https://jamesiv.es/blog/experiment/javascript/2023/06/07/curse-you-global-entryWed, 07 Jun 2023 11:00:00 GMT<![CDATA[Writing code around the Global Entry Appointment Scheduler because they cancelled an appointment last minute.]]><![CDATA[Virtually Infinite Scrolling with Angular]]>
https://jamesiv.es/blog/frontend/angular/2023/02/14/virtually-infinite-scrolling-with-angular
https://jamesiv.es/blog/frontend/angular/2023/02/14/virtually-infinite-scrolling-with-angularTue, 14 Feb 2023 11:00:00 GMT<![CDATA[In this article we will take a look at some common patterns to improve performance when implementing an infinite scroller with Angular.]]><![CDATA[Engineering Design Systems In 2022]]>
https://jamesiv.es/blog/frontend/design/2022/03/04/engineering-design-systems-in-2022
https://jamesiv.es/blog/frontend/design/2022/03/04/engineering-design-systems-in-2022Fri, 04 Mar 2022 11:00:00 GMT<![CDATA[In this article I will break down some of the things I have learned over the years of working with design systems and some tooling you can use to help build your own.]]><![CDATA[When Package Dependencies Become Problematic]]>
https://jamesiv.es/blog/javascript/security/2022/02/13/when-package-dependencies-become-problematic
https://jamesiv.es/blog/javascript/security/2022/02/13/when-package-dependencies-become-problematicSun, 13 Feb 2022 22:00:00 GMT<![CDATA[In this article we explore some common security holes caused by npm packages.]]><![CDATA[Deploying to GitHub Pages using GitHub Actions]]>
https://jamesiv.es/blog/github/actions/2022/01/23/deploying-to-github-pages-with-github-actions
https://jamesiv.es/blog/github/actions/2022/01/23/deploying-to-github-pages-with-github-actionsSun, 23 Jan 2022 22:00:00 GMT<![CDATA[Learn how to deploy your web application to GitHub Pages with the help of GitHub Actions.]]><![CDATA[Rendering 3D Models in the Browser]]>
https://jamesiv.es/blog/experiment/javascript/2021/11/26/rendering-3d-models-in-the-browser
https://jamesiv.es/blog/experiment/javascript/2021/11/26/rendering-3d-models-in-the-browserFri, 26 Nov 2021 22:00:00 GMT<![CDATA[In this article we'll explore different ways to create 3D models, along with some of the options available when it comes to displaying them in a web browser.]]><![CDATA[Animating Sprite Sheets with CSS]]>
https://jamesiv.es/blog/experiment/2020/12/12/animating-sprite-sheets-with-css
https://jamesiv.es/blog/experiment/2020/12/12/animating-sprite-sheets-with-cssSun, 13 Dec 2020 00:00:00 GMT<![CDATA[Sprite Sheets are used in everything from video games, physical devices and even the web. In this post we will explore their use cases on the web.]]><![CDATA[Generating Last Word Cocktail Variations]]>
https://jamesiv.es/blog/experiment/2020/06/27/the-algorithmic-word
https://jamesiv.es/blog/experiment/2020/06/27/the-algorithmic-wordSat, 27 Jun 2020 18:10:00 GMT<![CDATA[A look into how we can use algorithms to generate a list of Last Word cocktail variations.]]><![CDATA[Programming an Elevator]]>
https://jamesiv.es/blog/experiment/2020/05/31/programming-an-elevator
https://jamesiv.es/blog/experiment/2020/05/31/programming-an-elevatorSun, 31 May 2020 18:00:00 GMT<![CDATA[Join me as I put far too much time into solving a question about programming elevators.]]><![CDATA[Fetching Authenticated API Data with GitHub Actions]]>
https://jamesiv.es/blog/github/actions/2020/03/07/fetching-authenticated-api-data
https://jamesiv.es/blog/github/actions/2020/03/07/fetching-authenticated-api-dataSat, 07 Mar 2020 09:00:00 GMT<![CDATA[I created a GitHub Action that requests arbitrary authenticated API data on a schedule!]]><![CDATA[Analyzing My Google Music Library]]>
https://jamesiv.es/blog/experiment/2019/12/02/analyzing-my-google-music-library
https://jamesiv.es/blog/experiment/2019/12/02/analyzing-my-google-music-libraryWed, 11 Dec 2019 09:00:00 GMT<![CDATA[Let's analyze my Google Music library and see what genres I listen to the most without using an API.]]><![CDATA[Creating the United Income Component Library]]>
https://jamesiv.es/blog/react/2019/06/03/creating-our-component-library
https://jamesiv.es/blog/react/2019/06/03/creating-our-component-libraryMon, 03 Jun 2019 09:00:00 GMT<![CDATA[This article will cover the process of creating the United Income component library, and the best practices we've introduced along the way.]]><![CDATA[Google Assistant Action for the DC Metro]]>
https://jamesiv.es/blog/dialogflow/2018/12/05/dc-metro-google-assistant-action
https://jamesiv.es/blog/dialogflow/2018/12/05/dc-metro-google-assistant-actionWed, 05 Dec 2018 09:00:00 GMT<![CDATA[Navigating the DC Metro with Google Assistant.]]><![CDATA[Google I/O 2018]]>
https://jamesiv.es/blog/conference/2018/05/12/google-io-18
https://jamesiv.es/blog/conference/2018/05/12/google-io-18Sat, 12 May 2018 09:00:00 GMT<![CDATA[A write up of my experience at Google I/O 2018]]><![CDATA[Unveiling ArcAds]]>
https://jamesiv.es/blog/arc/2018/04/23/unveiling-arc-ads
https://jamesiv.es/blog/arc/2018/04/23/unveiling-arc-adsMon, 23 Apr 2018 09:00:00 GMT<![CDATA[Learn about ArcAds, a new library that simplifies and standardizes advertisement logic in a way that makes sense in the context of large-scale publishers.]]><![CDATA[Building a Robot with NodeJS]]>
https://jamesiv.es/blog/nodejs/2017/08/04/building-a-robot-with-nodejs
https://jamesiv.es/blog/nodejs/2017/08/04/building-a-robot-with-nodejsFri, 04 Aug 2017 09:00:00 GMT<![CDATA[Apparently you can build robots with NodeJS. Who knew?]]><![CDATA[AMP Validator Slack Bot]]>
https://jamesiv.es/blog/adn/amp/2017/03/16/amp-validator-cat
https://jamesiv.es/blog/adn/amp/2017/03/16/amp-validator-catThu, 16 Mar 2017 07:00:00 GMT<![CDATA[Automating AMP validation with a Slack bot]]><![CDATA[Google AMPConf 2017]]>
https://jamesiv.es/blog/conference/2017/03/10/google-amp-conf
https://jamesiv.es/blog/conference/2017/03/10/google-amp-confFri, 10 Mar 2017 07:00:00 GMT<![CDATA[I was in Manhatten for Googles AMPConf on behalf of Alaska Dispatch News.]]><![CDATA[Steam Dev Days 2016]]>
https://jamesiv.es/blog/conference/2016/10/16/steam-devdays
https://jamesiv.es/blog/conference/2016/10/16/steam-devdaysSun, 16 Oct 2016 07:00:00 GMT<![CDATA[I attended the Steam Dev Days conference in Seattle, Washington hosted by Valve Software.]]><![CDATA[Alaska Dispatch News 2.0]]>
https://jamesiv.es/blog/adn/arc/2016/05/30/alaska-dispatch-news
https://jamesiv.es/blog/adn/arc/2016/05/30/alaska-dispatch-newsMon, 30 May 2016 07:00:00 GMT<![CDATA[A look at the new Alaska Dispatch News website]]><![CDATA[What I Learned at RenderConf 2016]]>
https://jamesiv.es/blog/conference/2016/05/02/what-i-learned-at-renderconf2016
https://jamesiv.es/blog/conference/2016/05/02/what-i-learned-at-renderconf2016Mon, 02 May 2016 07:00:00 GMT<![CDATA[I got to spend a couple of days in Oxford for the Render Conference. Here's what I learned!]]><![CDATA[Back to Valve Software to Try the Vive]]>
https://jamesiv.es/blog/hardware/2015/09/03/back-to-valve-to-try-the-vive
https://jamesiv.es/blog/hardware/2015/09/03/back-to-valve-to-try-the-viveThu, 03 Sep 2015 07:00:00 GMT<![CDATA[I was invited back to Valve Software, this time to try the Vive dev kit.]]><![CDATA[Testing Valves Prototype Steam Hardware]]>
https://jamesiv.es/blog/hardware/2013/12/01/steam-hardware
https://jamesiv.es/blog/hardware/2013/12/01/steam-hardwareSun, 01 Dec 2013 07:00:00 GMT<![CDATA[Valve Software sent me a prototype Steam Machine and Controller to test out. Here's what I thought.]]><![CDATA[Visit to Valve Software]]>
https://jamesiv.es/blog/misc/2012/04/21/visit-to-valve-software
https://jamesiv.es/blog/misc/2012/04/21/visit-to-valve-softwareSat, 21 Apr 2012 07:00:00 GMT<![CDATA[I was invited to Valve for an office tour and to playtest an upcoming update for Team Fortress 2.]]>