Category: Software Development Tips & Tricks

    Understanding window.open() Behavior on iOS Safari

    by 

    |

    |  

    in

    Recently, I dealt with a strange bug around PDF downloads. The functionality was simple: The user fills out a form, clicks a button, and a PDF opens in a new browser tab. This was working as expected for every browser and every device, except Safari on iOS. Some digging led me to realize that Safari…

    Read more…

    MCP Magic: AI-Powered Azure SQL Analysis in Plain English

    by 

    |

    |  

    in ,

    Imagine being able to ask your database questions in plain English and getting visualizations quickly. Traditional SQL analysis requires expertise in SQL query language and separate visualization tools. However, by combining MSSQL and Charting MCP servers in VS Code with natural language, we can enable data analysis for both technical and non-technical users. This powerful…

    Read more…

    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…

    Formatting XML When Serializing C# Objects

    by 

    |

    |  

    in

    Serializing your custom objects in C# is quite simple, and there are several powerful tools at your disposal for crafting the exact XML object you need. Let’s take a look at a few of the ways we can harness the power of C#’s built-in XmlSerializer. Setting Up Your Classes Let’s see how to set up…

    Read more…

    SAS Style Secure Links: Now with more Bit Shifting!

    by 

    |

    |  

    in ,

    SAS stands for Shared Access Signature. A SAS style link is a URL that contains parameters needed by the API call as well as a signature that verifies the parameters in the link are correct and haven’t been tampered with. These links can be made to expire, and the key used to create the signature…

    Read more…

    Coding with AI: How to Get the Results You Actually Want

    by 

    |

    |  

    in ,

    You can’t talk about software right now without talking about AI or, more accurately, LLMs. These are helping us write software faster. But can they help us be much faster? The common way they help us is by autocompleting code for us. I start writing a method called upsertUser, and then the AI will automatically…

    Read more…

    Getting Started with Monorepo

    by 

    |

    |  

    in

    In my previous post, I covered my quest to build a shareable component library, using Vue 3. In this post, I will cover taking the current library and turning it into a Monorepo that can handle multiple libraries with Lerna. Prep the Repo To this: Note: You have a package.json file in the root folder…

    Read more…

    My First NPM Package

    by 

    |

    |  

    in

    What follows is my quest to build a sharable component library using Vue 3. A project came along that required a way to share components between two Vue projects, but that was also supposed to lay the foundation for using some of the same components across more projects in the future. As this is a…

    Read more…

    The Struggle with Vue and ASP.NET Core

    by 

    |

    |  

    in ,

    There is a wonderful template in Visual Studio to create a FullStack application that serves Vue 3 as the frontend and .NET core as the backend. Microsoft even provides a tutorial on it. But as usual, once you want to customize, things get complicated. I’ve spent hours trying to understand why I could not change…

    Read more…

    Mocking Email Addresses for Testing

    by 

    |

    |  

    in ,

    Many people I’ve talked to know how to find a dummy credit card number for testing. And if you don’t, here’s a link: https://docs.stripe.com/testing Fewer people that I’ve talked to know where to find dummy email addresses, and this info was more difficult for me to find online. If you’re working in a legacy codebase…

    Read more…