I was just reviewing a video we're about to publish, and I noticed something in the subtitles. It said, "Six qubits are used for..."I got all excited thinking RavenDB was jumping into quantum computing. But nope, it turned out to be a transcription error. What was actually said was, "Six kilobytes are used for..."To be fair, I listened to the recording a few times, and honestly, "qubits" isn't an unreasonable interpretation if you're just going by the spoken words. Even with context, that transcription isn't completely out there. I wouldn't be surprised if a human transcriber came up with the same result.Fixing this issue (and going over an hour of text transcription to catch other possible errors) is going to be pretty expensive. Honestly, it would be easier to just skip the subtitles altogether in that case. Here's the thing, though. I think a big part of this is that we now expect transcription to be done by a machine, and we don't expect it to be perfect. Before, when it was all done manually, it cost so much that it was reasonable to expect near-perfection.What AI has done is make it cheap enough to get most of the value, while also lowering the expectation that it has to be flawless.So, the choices we're looking at are:AI transcription - mostly accurate, cheap, and easy to do.Human transcription - highly accurate, expensive, and slow.No transcription - users who want subtitles would need to use their own automatic transcription (which would probably be lower quality than what we use).Before, we really only had two options: human transcription or nothing at all. What I think the spread of AI has done is not just made it possible to do it automatically and cheaply, but also made it acceptable that this "Good Enough" solution is actually, well, good enough.Viewers know it's a machine translation, and they're more forgiving if there are some mistakes. That makes it way more practical to actually use it. And the end result? We can offer more content.Sure, it's not as good as manual transcription, but it's definitely better than having no transcription at all (which is really the only other option).What I find most interesting is that it's the fact that this is so common now that makes it possible to actually use it more.Yes, we actually review the subtitles and fix any obvious mistakes for the video. The key here is that we can spend very little time actually doing that, since errors are more tolerated.
Introduction
Until now, iOS developers who wanted real‑time, bi‑directional communication with SignalR had to rely on community‑built clients or roll their own Swift implementation—both of which introduced maintenance and compatibility headaches. We’re excited to announce that the official SignalR Swift client is now available in public preview.
With this release, you can:
In this post you’ll learn how to set up the Swift client and use its core features. During a recent .NET Community Standup, we demoed an AI-enabled chat sample that uses SignalR for streaming AI‑generated tokens to iOS clie...
Discover the new AI Dev Gallery, a Windows application that provides interactive local AI samples, easy model downloads, and source code export - all built with .NET AI building blocks.
Preview 2 of the .NET AI Chat Web App template introduces support for .NET Aspire and Qdrant vector database integration, making it easier to create cloud-native AI-powered chat applications with custom data.
Build AI-powered tools quickly using Azure Functions to create remote MCP servers that seamlessly integrate with GitHub Copilot and other LLM-based applications.
The countdown to Microsoft Build 2025 is on! Join us May 19-22 either in-person in Seattle or online and explore an exciting lineup of .NET and C# content, including sessions on AI integration, app modernization, and the latest language features.
In this post I describe the recent major changes to NetEscapades.AspNetCore.SecurityHeaders, a NuGet package for adding security headers to your apps.…
RavenDB is a pretty big system, with well over 1 million lines of code. Recently, I had to deal with an interesting problem. I had a CancellationToken at hand, which I expected to remain valid for the duration of the full operation.However, something sneaky was going on there. Something was cancelling my CancelationToken, and not in an expected manner. At last count, I had roughly 2 bazillion CancelationTokens in the RavenDB codebase. Per request, per database, global to the server process, time-based, operation-based, etc., etc.Figuring out why the CancelationToken was canceled turned out to be a chore. Instead of reading through the code, I cheated.token.Register(() =>
{
Console.WriteLine("Cancelled!" + Environment.StackTrace);
});I ran the code, tracked back exactly who was calling cancel, and realized that I had mixed the request-based token with the database-level token. A single line fix in the end. Until I knew where it was, it was very challenging to figure it out.This approach, making the code tell you what is wrong, is an awesome way to cut down debugging time by a lot.
We use cookies to analyze our website traffic and provide a better browsing experience. By
continuing to use our site, you agree to our use of cookies.