Can we safely reference .NET8 libraries from .NET9 apps?

With each upgrade of the .NET platform, developers may decide whether to upgrade or wait until the rest of the ecosystem upgrades first. Here is my experience when I wanted to understand if it’s ok to bump up my projects to .NET 9 while some of the NuGet libraries I depend on are … | Continue reading


@taurit.pl | 2 hours ago

PiHole alternative: PiHole and NextDNS compared

Why did I look for a Pi-Hole alternative? My main motivation for moving away from PiHole was enabling ad blocking and site blocking on my smartphone, which I often use outside my home network. I described this journey in one of my older blog posts, PiHole, but hosted in the cloud … | Continue reading


@taurit.pl | 2 months ago

Announcing a new plugin for Insomnia to display images returned by Generative AI APIs

Generative AI endpoints might return Base64-encoded images Recently, I explored the possibility of generating images using locally hosted Stable Diffusion models. Thanks to the AUTOMATIC1111 stable-diffusion-WebUI project, I got the local API working pretty quickly. However, one … | Continue reading


@taurit.pl | 2 months ago

Personalized email address: pros and cons

Personal email domain: introduction Many years ago, I set up a personalized email domain. It was an alternative to my long-used address in the format of official.name@gmail.com. I remember at least two factors that motivated me to seek a Gmail alternative. Frankly, I don’t care a … | Continue reading


@taurit.pl | 2 months ago

Google Gemini: JSON mode and Structured Outputs – request examples

What is JSON Mode in Google Gemini? I recently blogged about JSON Mode and Structured Outputs in OpenAI APIs. Today, I’ve examined the OpenAI competitor Google Gemini and tested whether it can adhere to the requested schema. The JSON Mode is a feature that helps enforce the outpu … | Continue reading


@taurit.pl | 2 months ago

Grammarly for Markdown? First Impressions with JetBrains Grazie

Grammarly: great support in browsers, but doesn’t work in IDEs I have an active Grammarly subscription, and I enjoy how it helps refine my writing. It works well in browsers and notably has plugins for Microsoft Office. Also, if you write in another application and want to use it … | Continue reading


@taurit.pl | 3 months ago

Converting .png to .ico – overview of tools, which is the best?

Is the .ico format still relevant today? An .ico file format can contain multiple images at different resolutions (e.g., 16×16, 32×32, 48×48, 64×64) and color depths (e.g., 8-bit, 24-bit). This allows the system or application to choose the most appropriate image based on the dis … | Continue reading


@taurit.pl | 3 months ago

OpenAI API: Structured Outputs – generate JSON schema from a class in C#

What problem does the Structured Outputs feature solve When using GPT models from the code, we developers don’t normally want the output to be in a natural language like in ChatGPT conversations. Instead, we want it to have some structure, and the lingua franca today for data int … | Continue reading


@taurit.pl | 3 months ago

OpenAI JSON mode: wrong schema in the output (fix)

TL/DR: JSON mode remains available as an API feature, but the newest models include the Structured Outputs feature, which solves this problem 100% without workarounds needed. JSON Mode vs Structured Output When we integrate our applications with chatbot-like API, we often prefer … | Continue reading


@taurit.pl | 3 months ago

OpenAI API ‘JSON mode’ doesn’t guarantee adherence to schema

TL/DR: JSON mode remains available as an API feature, but the newest models include the Structured Outputs feature, which solves this problem 100% without workarounds needed. JSON Mode vs Structured Output When we integrate our applications with chatbot-like API, we often prefer … | Continue reading


@taurit.pl | 3 months ago

Object Generative Fill: a code pattern idea (with example in C#)

What is Generative Fill? You are probably familiar with the Generative Fill feature in graphic editing software like Adobe Photoshop. The idea is that well-trained AI models can guess how to fill blank areas in the picture. The model can either try to guess what to do by itself o … | Continue reading


@taurit.pl | 3 months ago

Generative Fill for objects: a code pattern idea (with example in C#)

What is Generative Fill? You are probably familiar with the Generative Fill feature in graphic editing software like Adobe Photoshop. The idea is that well-trained AI models can guess how to fill blank areas in the picture. The model can either try to guess what to do by itself o … | Continue reading


@taurit.pl | 3 months ago

Running llama3.1 offline: my experiences

Discovering Llama: where does it stand compared with gpt-4o? Today, I was looking for an AI model that would perform best with a non-mainstream task: translating text between two Slavic languages. This was a good opportunity to use the LMSYS Chatbot Arena. The service allows you … | Continue reading


@taurit.pl | 3 months ago

OpenAI – using Batch API (with 50% discount) in C#

What is OpenAI Batch API? The pricing page for OpenAI services has an annotation that drew my attention recently: *Batch API pricing requires requests to be submitted as a batch. Responses will be returned within 24 hours for a 50% discount. I pretended not to see this option for … | Continue reading


@taurit.pl | 3 months ago

GitHub Copilot: select different suggestion

I’ll share a simple trick I was happy to learn only today (after using GitHub Copilot for over a month). Copilot is so good at guessing what I intend to write that pretty much all the time I accept the first solution it comes up with. But sometimes it can guess wrong, or it doesn … | Continue reading


@taurit.pl | 3 months ago

Workaround: Azure Portal sign-in flow stuck on “More information required”

When I visit the Azure Portal and attempt to sign in, the page often gets stuck at the following screen (“More information required”): I couldn’t find any useful solution on Google, and contacting the support team about it is low on my priority list. So I experimented and found w … | Continue reading


@taurit.pl | 3 months ago

Workaround: Azure Portal sign-in flow stuck on “More information required”

When I visit the Azure Portal and attempt to sign in, the page often gets stuck at the following screen (“More information required”): I couldn’t find any useful solution on Google, and contacting the support team about it is low on my priority list. So I experimented and found w … | Continue reading


@taurit.pl | 3 months ago

ChatGPT seems signed out every time I visit – a fix

Here’s a short hint that helped me resolve an annoying issue of ChatGPT signing me out very often. It’s a service I have bookmarked and I use frequently, yet it seemed to be more stubborn than most apps and I was signed out every day I opened it 😉 And especially if you us … | Continue reading


@taurit.pl | 3 months ago

ChatGPT seems signed out every time I visit – a fix

Here’s a short hint that helped me resolve an annoying issue of ChatGPT signing me out very often. It’s a service I have bookmarked and I use frequently, yet it seemed to be more stubborn than most apps and I was signed out every day I opened it 😉 And especially if you us … | Continue reading


@taurit.pl | 3 months ago

Azure Static Web Apps – a few deployment errors and solutions to them

I’ve been taking a first look at Blazor recently. I wanted to pair it with Azure Static Web Apps to test my understanding that a Blazor application can run 100% in the browser, without any backend part required (at least if I choose the right project template). If that’s true, St … | Continue reading


@taurit.pl | 3 months ago

SQLiteException: ‘no such collation sequence: unicase’

Recently, I’ve been prototyping various plugins and tools for Anki (flashcard management system) in C#. So far, the biggest technical obstacle I encountered was the following exception thrown when I tried to query data from the database: System.Data.SQLite.SQLiteException: ‘SQL l … | Continue reading


@taurit.pl | 4 months ago

ChatGPT API: asking for no indentation in JSON output can reduce your bills

While working with ChatGPT API, I noticed that the JSON response I normally receive contains many whitespace characters used for indentation. Here’s a fragment of the response, to illustrate that: Output tokens still cost quite a lot in 2024 (assuming we process lots of data), so … | Continue reading


@taurit.pl | 4 months ago

Are file operations slower in directories containing many files? NTFS and ReFS (DevDrive) tested

I’ll share the results of a quick benchmark testing how the number of files in a directory impacts the following filesystem operations executed from a .NET application: My motivation was to decide if it was a good design performance-wise to have a single directory containing many … | Continue reading


@taurit.pl | 11 months ago

C#12 primary constructors: no auto-generated properties?

.NET 8, along with C#12, is now official. Last week, I upgraded one of my projects to the new version and tried using some new features. Primary constructors in classes don’t generate auto-properties One thing that surprised me was that the primary constructors, known from record … | Continue reading


@taurit.pl | 1 year ago

GitHub Workflow error: Canceling since a higher priority waiting request for [a concurrency group] exists

Hi, in this post, I’ll share learning from my recent attempt to set up GitHub workflow in a way that: We wanted to achieve such a setup to allow running end-to-end tests on a single Azure environment without causing interference between workflows running simultaneously. An attemp … | Continue reading


@taurit.pl | 1 year ago

OpenAI Text To Speech (tts-1) and Polish language

Does OpenAI Text to Speech support languages other than English? OpenAI’s Text-to-Speech service transforms text into audio files with impressive quality when we consider English language. I haven’t performed a blind test, but based on a few samples I heard, I don’t think I could … | Continue reading


@taurit.pl | 1 year ago

DALL-E 3: comparison of Standard vs HD quality

What is the new quality parameter? DALL-E 3 introduced a new API parameter, quality. The documentation explains: quality (standard or hd. Defaults to standard) The quality of the image that will be generated. hd creates images with finer details and greater consistency across the … | Continue reading


@taurit.pl | 1 year ago

DALL-E 3: `vivid` vs `natural` styles compared

What is the new style parameter? OpenAI released a preview of a DALL-E 3 API this week, and I’m excited to play with it today. We can now control a new parameter named style. The documentation explains: style (defaults to vivid): The style of the generated images. Must be one of … | Continue reading


@taurit.pl | 1 year ago

How to convert JPEG to JPEG XL (*.jxl) and back, losslessly

I was recently reading about the JPEG XL format, which is one of the promising options for replacing a venerable JPEG standard. One of the aspects underlined in several sources is that it’s possible to losslessly transcode JPEG to JPEG XL and reduce the size of a file. What I fou … | Continue reading


@taurit.pl | 1 year ago

Does “Allow Azure services and resources to access this server” cover GitHub Actions workflows?

There is a famous option in Azure Firewall settings labeled: “Allow Azure services and resources to access this server“ According to the UI hint, “This option configures the firewall to allow connections from IP addresses allocated to any Azure service or asset, including connect … | Continue reading


@taurit.pl | 1 year ago

.NET 7 warning: use ‘GeneratedRegexAttribute’ (SYSLIB1045)

.NET 7 introduced the [GeneratedRegex] attribute that allows doing some regex initialization in compile time rather than in runtime. Using this attribute might help improve performance. Therefore some tooling might start showing you a warning that you miss an opportunity for free … | Continue reading


@taurit.pl | 1 year ago

Calendar Filter – a small tool to declutter your calendar view

Calendar Filter is an open-source service for decluttering subscribed calendars (in iCalendar, or *.ics format). Hide events and control what you see in your calendar views. The post Calendar Filter – a small tool to declutter your calendar view appeared first on Paweł Bulwan. | Continue reading


@taurit.pl | 1 year ago