My prediction for AI in 2026 is that it's just gonna keep growing. I don't think it's some kind of bubble. Some of the things people are trying with LLMs...
Introduction: Why Migrate to Blazor? Blazor brings the power of modern web development to .NET developers, enabling rich interactivity using just C#. But most existing enterprise applications still rely on...
Introduction LinkDisguiser.com is a project I built to explore the capabilities of Azure Table Storage while solving a practical problem—creating a scalable and cost-efficient way to manage and disguise links....
LinkDisguiser.com has been updated to improve link shortening. The service now uses lkdr.xyz to generate shorter links that are easy to share. What's New? Shorter Links: The new domain, lkdr.xyz...
To hide warnings with the dotnet cli in commands such as dotnet build or dotnet test - you have to pass a flag to the underlying msbuild system. dotnet build...
Today I wanted to find a way to extract data from my banking portals faster. Usually, I use the "export to csv" feature, then manually copy/paste that csv data into...
Blazor is a modern framework for building web applications with C#/.NET. Blazor apps can run "anywhere" in a variety of rendering modes. Blazor supports building pre-rendered static sites, server rendered...
A while back I went domain name shopping and picked up a few cool sounding domains. Using Azure Static Webapps, I built sites for each. Each site is in "alpha"...
Azure Static Web Apps are one of my new favorite things. Azure static apps are essentially static file servers - there's no compute resources available on them. They're optimized to...
Will Blazor Replace MVC? Blazor and MVC are two distinct technologies in the realm of web development, each with its own set of advantages and use cases. Let's delve into...
There really isn't much use in doubting yourself at work.
I learned from Hacker News today that Eloquent Javascript is now in it's 4th edition . About ten years ago, I read this book and worked through every exercise in...
When you upgrade an Azure Function to .NET 8 dotnet-isolated model, the Webjobs namespace goes away, and gets replaced by the Microsoft.Azure.Functions.Worker namespace. In the Webjobs namespace, there is a...
As it turns out, Azure Functions might not like "comments" in your host.json , and it will fail awkwardly. "version": "2.0", "functions": [ "myfunc" //"myotherfunc" <--- THIS WILL BREAK THE...
Using the Azure Devops Extension to to the Azure CLI , you can navigate directly to pipelines in your browser without having to click through the Azure Devops UI. Windows...
I was getting HTTP 409 errors when editing an Azure Function app, I couldn't understand why. A Bing search led to this blog post from Chaminda Chandrasekara which helped me...
I sometimes want to generate a list of numbers going "up" and "down" from a given number (usually, the ID of an entry in a database). Sometimes I've done this...
This site was at the front of Hacker News this morning: https://whatpwacando.today/ . I think it's rad how much can be built that runs "natively" from a browser. I'd like...
In my previous post I had left open a problem of a 100ms delay that forced the screen to repaint. I've been working out what is required to make sure...
It would appear that AOT compilation gets substantial performance improvements in client-side application performance. I put together a tech demo running Blazor client side WASM. The code for the main...
I'm excited to share that https://danschnau.com is now hosted with Blazor Static Server side rendering. Because this site is not a particularly complicated app, it didn't take too much to...
Not long after I was laid off , I signed up to give a tech talk at Michigan DevFest 2023 , a tech conference in downtown Detroit. I expected that...
As part of an upcoming project, I'll be working with GraphQL. So before starting, I decided to set up a GraphQL API on danschnau.com first. To accomplish this, I installed...
Here's some sample code for a blazor client-side component that allows uploading and rending an image. The cool thing about this is that it all happens client-side and allows working...
Update November 2024 I wrote a much more detailed post about this subject here: https://danschnau.com/blog/how_to_add_a_Blazor_Server_App_to_an_ASPNET_Controller_Web_API I spun up a new Blazor Server App and wanted to add an API controller,...
I Know How To Code But I Don't Know What To Code With some extra time on my hands these days I am looking for things to code. I notice...
I added a 'word count' feature to my blog editor this morning. This is the regular expression to match spaces and line breaks: /\s/ And in JavaScript: const count =...
Blazor will not simply replace MVC. Blazor is a new technology with its own advantages and disadvantages, while MVC is a tried-and-true technology for building web applications with ASP.NET. Is...
Here we go. I'm going to explain SQL in one sitting. I'm writing this without doing any research, just from my own experience, so do check the facts yourself, and...
My fiancé's job is to provide middle schoolers with hacksaws, orbital sanders, drill presses, solvents, paints, and lumber, and then guide them in the safe usage of these tools and...
During the postwar expansion of the United Kingdom, a Naval Historian wrote about a phenomenon that explained why governments move at a glacial pace and at the same time, why...
This post is a response to Lucas F. Costa's blog "Localhost will inevitably die" , which I enjoyed. I don't think localhost has to inevitably die, and I think it's...
Today I put together an image management solution for Dan Schnau dot com in about an hour. Before today, my image management workflow was as follows: Add the image to...
A User Story : As Dan Schnau, When I publish a new article on Dan Schnau Dot Com, I want a 'toot' with the title and a link to the...
I have been laid off from my job. I learned that unexpectedly getting laid off from your job feels a lot like a relationship ending. I experienced a lot of...
For about a year, I've had a problem where git push and git pull from dev.azure.com would intermittently fail with an error like this: ~#@❯ git pull ❮ fatal:...
When I offer my kids advice, I'm really just giving myself advice. Here are the "Magic P Words" I use. Planning I think I offer this Magic P word to...
I got an invitation to Microsoft Designer, an AI-Powered design tool . I tried it out by sampling some save-the-date invitations. The results are really cool. From a simple prompt,...
If you're like me, you're used to finding your .NET build artifacts in /bin and /obj directories inside your source projects. It's been this way my whole career. In .NET...
Last week, Jeremy Likness discussed improvements to Authentication and Identity features in ASP.NET Core 8 . I wanted to try some of it out, so I first went to install...
Authentication and Authorization (AuthN and AuthZ) are terms that refer to discrete, specific concepts that can easily be confused. Authentication is the process of proving that someone is who they...
As an AI language model, it is difficult for me to express opinions or personal bias since my responses are generated entirely based on statistical patterns from the dataset I...
A few years ago I visited a used book store in Seattle . It had several cats hanging around with the customers, which was pretty cool. I found a copy...
Good software engineers have to understand the business they're working in. If they don't, they're at the mercy of business analysts and project managers to explain what to do. Some...
ChatGPT is at the peak of the hype cycle.
A friend (a geniuine friend, who I truly respect, both personally and professionally) shared this video with me the other day. The video is pretty funny. But it touches on...
I had an instrumentation key but I didn't know what instance of application insights telemetry was getting pumped into. After some fiddling I got a one-line command in Azure CLI...
In the article for Agile Software Development , there are six thousand, eight hundred words and over 100 references. The Agile Mainfesto is 73 words. Gobs and gobs of software...
Software isn't always complicated. But when you work on big, complicated software, with lots of people, it does get complicated. It's easy to get stuck in the mud with big...
Shortly after I wrote the "Suicidal Ideation" post, I had a really really bad day. I had told my therapist that I was thinking about suicide. I had told my...
Rule #1: Never commit code you haven't run at least once , no matter how small or simple. Rule #2: Have a plan, and execute that plan, for verifying changes...
The node-sass npm package has given me problems on various projects at various companies over the years. It's a js wrapper around a python implementation of Sass, a CSS pre-processor....
JavaScript has ‘truthiness’ and ‘falsiness’. Things that are “falsey”: null undefined false 0 Things that are “truthy” function() {} '' (empty string) 'any other string' true 1 (or any number,...
This is not a cry for help. I’m getting help and I’ve been getting help. I have a depressive mind. When I woke up last Saturday, horrible thoughts were gnawing...
I’m learning container tech on the fly at work. This is how I understand the relationship between Docker and Kubernetes. If I’m wrong, or learn more, I’ll write an update...
The Direcive Attribute @ref can be used to refer to a specific DOM element. There’s also a convenience method FocusAsync for focusing an input element . In my Blazor Markup:...
Here’s the steps to getting a Blazor Component’s code out of a @Code block and into it’s own file. It doesn’t take much to make a one-file blazor component hard...
For me, this February will mark 10 years of collecting a steady paycheck in software engineering working on “boring business software”. I’m in my 30s. I have a four-year degree...
Because of the pandemic, my sons have been using laptops a lot for gaming during the day. Their machines don''t have adblockers. I figured this was a good time to...
While updating my build failed with an upgrade from ASP.NET Core from 2.2 to 3.1. I was using Azure DevOps for my build. I was getting a funny error: ##[error]The...
Until now, this blog was entirely a read-only site. Content is stored in a database, and the app reads from that DB, but there was no code for writing to...
I encountered an issue the other day where I was unable to run unit tests in the Visual Studio 2019 Test Explorer. The tests would just show up as 'skipped'...
In JavaScript, you can use Promise.all() if you need to wait for a few promises to complete before moving forward in a routine. var p1 = getData(); // getData returns...
As of yesterday this blog supports syndication by Atom feed. You can use this link to connect the feed to a reader . I took joy in writing the code...
I was developing an app locally on a different laptop than usual. When it started it would fall over returning 502 errors. I saw in Visual Studio's debug output this...
This March I began a new job at SkyKick . SkyKick is a world-class startup and I couldn't be more excited to be a part of their team, and that's...
"Google" is a company built on a search engine. It isn't a verb. In 1998 Larry Page wrote in an email "Have fun and keep googling!". It is the first...
My stance on JavaScript strict vs. type-converting comparison (double vs. triple-equals) is to always use strict equality. But the other day this tripped me up. I had a number stored...
This afternoon I'm experimenting with Dapper , a micro-ORM used by Stack Overflow. The most straightforward way to query with dapper is to get a list of Dynamic objects. But...
Or: "Four Strategies you can apply to work effectively with an Object Oriented Programming Language" Abstraction Encapsulation Inheritance Polymorphism When I was in college, and for my first few years...