Author: Andrew Tarr

    Signing into Entra External ID with Google Workspace

    by 

    |

    |  

    in

    This post will walk through the steps needed to connect a Google Workspace account with a Microsoft Entra External ID tenant. The phrasing and direction can be confusing from tutorial-to-tutorial, so to put it plainly, this post is for you if: This post assumes you have an Entra tenant, a Google Workspace account, access to…

    Read more…

    Reflections on Attending the Kansas City Developer Conference (KCDC 2024)

    by 

    |

    |  

    in , ,

    The Kansas City Developer Conference (KCDC) consists of a full day of participatory workshops, two days full of talks, an evening mixer, a whole lot of sponsor booths, some regretful karaoke, great barbeque, great bars, and at least one actual magician. Today, we’re talking about my attendance at the 15th annual KCDC, held June 26th…

    Read more…

    Rate-Limiting Requests with RxJS

    by 

    |

    |  

    in

    Recently, I had an issue in a front-end application in which a user was allowed to click around a calendar and begin loading any day that was tapped. Each day triggered a semi-expensive API call, which could take a second or two to complete. The user was free to click around on more days and…

    Read more…

    Searching Text in C# Using Embeddings with OpenAI

    by 

    |

    |  

    in ,

    The problem we’re solving today is semantic searching text in C#, using tools provided by OpenAI. A semantic search in this instance refers to searching on the searcher’s intent and the contextual meaning of the query, rather than a simple keyword lookup (for example, search results for “king” may include matches on the word “monarch”)….

    Read more…

    Asking ChatGPT to Play a Synthesizer

    by 

    |

    |  

    in , ,

    I’ve been developing against OpenAI’s chat completion API — the RESTful version of ChatGPT — for a little while and up until now, I’ve avoided learning about the “function calling” feature. Honestly I didn’t quite get it and I didn’t see it as useful to my use cases, but with the announcement of the new…

    Read more…

    Cross-Origin Resource Sharing (CORS) Basics

    Cross-Origin Resource Sharing (CORS) Basics

    by 

    |

    |  

    in ,

    This post is intended to give you a swift kick from behind into a pool of CORS, without taking all day to do so, and without digging into any specific technologies. With that said, let’s learn to swim.   What is CORS? From Mozilla: “Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows…

    Read more…

    Automating Wordle with Cypress and GitHub Actions

    Automating Wordle with Cypress and GitHub Actions

    by 

    |

    |  

    in

    Like many of you, I was introduced to the Wordle craze a few weeks ago by a peer who thought I was too focused on “actual work”. Naturally, I dropped everything to try this new game and then passed a link to the game around to my friends and family like a cursed videotape. It…

    Read more…

    JavaScript Events: An Introduction

    JavaScript Events: An Introduction

    by 

    |

    |  

    in

    Yes, JavaScript Events. Without them, the world wide web would be a dystopian wasteland of static HTML. Without them, we’d still be relying on blink and marquee tags to jazz up our LiveJournals. Fortunately, this is not the case. The modern web runs on JavaScript, and JavaScript is driven by events. But what does it…

    Read more…

    Reflections on “CSS Refactoring” by Steve Lindstrom

    by 

    |

    |  

    in

    Why I Read This Book I’ve worked in software development professionally for about six years, throughout which much of my time has been spent in front-end web development. In that time, I have written my fair share of CSS and Sass, but I have never felt especially competent while doing so. I can typically style…

    Read more…

    The Case for Strict and Opinionated Style Guides or: The “Because I Said So” Approach

    by 

    |

    |  

    in

    Developers come and go throughout the life of a project, and they all tend to have their own personal coding nuances. With no style guide, no standardization, no rules, no linter, no style cop, etc., the codebase’s style – or lack-there-of – will inevitably become quite messy. Indeed, “messy” is in the eye of the…

    Read more…