Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
148365 stories
·
33 followers

Building a 10× Faster, Cloud-Ready Document Pipeline Without Office or Adobe

1 Share

Building a 10× Faster, Cloud-Ready Document Pipeline Without Office or Adobe

TL;DR: Traditional document automation built on Microsoft Office Interop and Adobe dependencies often fails in server and cloud environments due to instability, threading issues, and platform limitations. By switching to server-safe, managed .NET document libraries, we built a cloud-ready pipeline that renders, converts, and processes documents up to 10× faster, without crashes, unpredictable behavior, or OS-level dependencies.

The moment our document pipeline started crashing

When routine document tasks started taking minutes instead of seconds, and our automated workflows began failing at the worst possible moments, we knew something was seriously wrong.

As we scaled, relying on Adobe and Microsoft Office became a bottleneck we could no longer ignore. These tools were built for desktops, not the cloud. And once Docker, Linux, and Kubernetes entered the picture, the cracks widened fast: random crashes, slow rendering, mysterious file locks, broken conversions… everything was becoming unpredictable.

That’s when we shifted to a new category of technology: server‑safe, code‑first document SDKs.

And the solution that transformed our entire workflow? Syncfusion Document Processing SDK. It offers consistent processing, seamless scaling, and reliability for automation. Our pipeline now delivers consistent speed across OSes and workloads.

Why Adobe & Office broke our automated pipelines

As our automation footprint grew, so did the cracks. The more we scaled, the more Adobe and Microsoft Office exposed their limits. Here’s what we found when we tried to run them inside modern server environments:

  • Not built for server-side execution: Both Adobe and Office were designed for interactive desktop use, not for background automation. When forced into server roles, they frequently hang, stall, or fail unpredictably.
  • Slow, resource-intensive rendering: Document rendering consumes excessive CPU and memory. Under real-world load, these apps become bottlenecks, slowing jobs down and dragging entire pipelines to a crawl.
  • Unpredictable automation failures: We constantly encountered COM exceptions, random crashes, and mysterious file locks. Even minor tasks felt like rolling the dice every time the script ran.
  • Not suitable for Docker, Linux, or Kubernetes: Modern infrastructure demands portability, but these tools require full desktop environments. Containers reject them outright, making cloud deployment nearly impossible.
  • Complex, expensive licensing at scale: Licensing for Adobe and Office gets complicated and costly very quickly. Every additional server, instance, or workflow adds both expense and compliance overhead.

The deeper we went, the clearer it became: using Adobe and Office in automated pipelines injects fragility where you need reliability. These issues aren’t rare edge cases; they’re systemic. And they’re exactly what Syncfusion’s Document SDK was built to solve with a server-safe, code-first approach purpose-built for modern automation.

What we needed: A cloud‑ready, failure‑proof document pipeline

After understanding where our old system failed, we mapped out exactly what a modern document pipeline should look like. Every goal is focused on building a solution that stays reliable, scalable, and cloud-friendly from day one.

  • 100% server-safe: We wanted a pipeline that runs entirely in headless environments, with no UI dependencies. No more desktop apps pretending to be server tools, just clean, predictable execution.
  • No external installations: The new system shouldn’t rely on Adobe, Office, or any third-party apps installed on machines. Everything needed to run directly within our codebase and deployment environment.
  • Fast, multi-threaded, scalable: Speed had to be a core requirement, not an afterthought. The redesigned workflow needed to support parallel tasks and handle spikes in document volume without choking.
  • Consistent rendering across environments: A document generated on one server should look identical everywhere else. We aimed for stable, deterministic rendering across Windows, Linux, containers, and cloud clusters.
  • Built entirely on .NET: To streamline development and maintenance, we chose to unify everything under .NET. This allowed us to leverage familiar tooling, strong performance, and clean integration with our existing services.

Why Syncfusion Document SDK became the clear winner

Throughout our evaluation of leading document SDKs, Syncfusion proved to be the clear choice, offering robust PDF, Word, Excel, and PowerPoint libraries that have matured over 20 years of continuous development. It satisfied all the architectural requirements we had defined and resolved several underlying issues we hadn’t identified until we dug deeper.

  • Full document creation without Adobe/Office: Syncfusion lets us generate PDFs, Word files, Excel sheets, and PowerPoint entirely through code. We no longer depend on heavyweight desktop apps or background installations.
  • Cross-platform support: The libraries run flawlessly on Windows, Linux, Docker, and Kubernetes. This gave us the freedom to deploy anywhere without worrying about OS-level restrictions.
  • High-performance rendering engine: Documents now render faster and more consistently, even under heavy load. Its optimized engine handles complex layouts without draining server resources.
  • Flexible conversion workflows: Whether it’s DOCX to PDF, HTML to PDF, or Excel to CSV, everything happens inside a clean .NET workflow. We automated conversions that were previously unreliable or impossible.
  • Unified licensing model: Instead of paying per seat or per server, we benefit from a single, predictable license. Unlike Adobe or Office, there are no hidden automation fees or usage-based charges.

Rebuilding our document processing pipeline with Syncfusion

Migrating the document pipeline to Syncfusion allowed us to redesign our workflow with performance and stability at the forefront. As a result, Syncfusion delivered faster processing, cleaner rendering, and more predictable automation, while eliminating the desktop-bound dependencies that limited our previous setup.

Moreover, the Syncfusion Document SDK AI Coding Assistant MCP Server further strengthens this workflow by providing intelligent, context-aware code suggestions for PDF, Word, Excel, and PowerPoint development. It streamlines implementation by generating accurate, library-specific guidance and examples, reducing the need for manual documentation lookup. This results in faster development, fewer integration issues, and a more efficient document automation pipeline overall.

PDF automation: Faster, cleaner, more reliable

Syncfusion PDF Library transforms how our pipeline generates, processes, and optimizes PDFs. It gave us a stable, API-driven system that handles complex operations with precision, without relying on external tools or desktop automation.

  • Unified PDF manipulation (Merge/Split/Stamp/Encrypt): All common PDF operations now run through a single, reliable engine. We can combine, split, watermark, and secure documents programmatically with minimal code.
  • Compliance-ready signatures and forms: The library supports digital signatures, form filling, validation, and PDF/A generation out of the box. This helped us automate secure and compliance-driven workflows with zero external plugins.
  • High-performance rendering engine: Syncfusion processes PDFs faster while using significantly less memory. This optimization keeps our pipeline stable under load and improves throughput across high-volume operations.
  • Advanced HTML-to-PDF rendering: Syncfusion converts modern web pages into pixel-perfect PDFs with full CSS and JavaScript execution. Charts, animations, and responsive layouts render exactly as they appear in the browser.

Want to dive deeper into how these PDF features work? Check out the live demos, explore real examples, and review the full technical overview to see everything in action.

Key automation features of .NET PDF Library
Key automation features of .NET PDF Library

Word automation: High‑volume DOCX at scale

Syncfusion .NET Word Library allows us to rebuild our Word generation pipeline with far greater precision and performance. It handles complex layouts, large datasets, and high-volume document generation without the instability of Office automation.

  • Complex DOCX composition (Fields, images, tables): The Word library dynamically constructs DOCX files with structured fields, embedded images, nested tables, and rich formatting. It reliably processes complex layouts, even as templates grow in size or complexity.
  • High-throughput mail merge engine: Syncfusion Mail Merge handles thousands of records per second with minimal overhead, making it ideal for real-time scenarios such as bulk invoice, report, or contract generation, or personalized document delivery at scale. It maps data fields, generates personalized documents, and scales horizontally without blocking threads.
  • Accurate rendering with faster processing at scale: It consistently renders documents the same way across different environments and servers. Its optimized processing pipeline reduces CPU usage and accelerates bulk operations, making large-scale automation far more stable.
  • Multiformat conversion (DOCX → PDF/HTML/Text/MD/Images/RTF): The conversion engine converts DOCX files into PDF, HTML, Markdown, images, plain text, or RTF with high fidelity, preserving layout, styles, and media-rich content, without requiring Microsoft Word.

Looking to implement these Word features in your own workflow? Start with the live demo, then dive into the DocIO docs and example code to see how to bring it all together.

Key automation features of .NET Word Library
Key automation features of .NET Word Library

Excel automation: Full spreadsheet generation without Excel

Syncfusion Excel Library enables us to build a fully automated Excel pipeline without relying on Microsoft Excel. It generates, formats, calculates, and converts spreadsheets across any server environment with consistent output and high performance.

  • Environment-independent XLSX generation: Syncfusion creates native XLSX files through pure .NET APIs, no Excel installation required. This makes our automation fully compatible with Windows, Linux, Docker, and Kubernetes.
  • Automated financial sheets with formulas and styles: We generate complex financial models with formulas, conditional formatting, cell styles, and dynamic ranges. The engine calculates values accurately, making it ideal for reports, audits, and analytics workflows.
  • Data-driven charts and pivot tables: The library builds charts and pivot tables directly from live data sources. Our dashboards update automatically, producing clear visual summaries without any manual post-processing.
  • Excel-to-PDF conversion with layout accuracy: Syncfusion converts spreadsheets into high-fidelity PDFs while preserving styles, grids, fonts, and page layout. This gave us a seamless way to produce polished reports directly from raw Excel data.

Want to see these Excel automation features in action? Try the live demo, browse the XlsIO documentation, and explore the GitHub examples to understand how easily you can generate and manipulate Excel files programmatically.

Key automation features of .NET Excel Library
Key automation features of .NET Excel Library

PowerPoint automation: Fully automated presentations

Syncfusion PowerPoint Library lets us automate end-to-end presentation workflows without opening PowerPoint. We now create, populate, standardize, and export decks programmatically across any environment with consistent results.

  • Autogenerated recurring presentations: We schedule and build recurring decks (weekly reports, monthly metrics, QBRs) through .NET APIs. The pipeline assembles slides from live data, ensuring every run uses the latest numbers.
  • Data-bound slides with visuals and branding: Slides automatically populate with charts, images, icons, and brand-consistent themes. We enforce fonts, palettes, and layouts so every presentation matches our design system.
  • Template reuse and smart slide editing: The engine loads existing PPTX templates, clones slides, and replaces placeholders with dynamic content. We modify shapes, text boxes, tables, and charts in place, with no manual tweaking.
  • Multiformat export (PPTX → PDF/Images): We export final decks to PDF or per-slide images for sharing and archiving. The output preserves layout fidelity, making distribution simple across email, portals, and slide libraries.

Discover how simple automated presentations can be, check out the live demo, and the quick-start guide to get a closer look.

Key automation features of PowerPoint Library
Key automation features of PowerPoint Library

Want a no‑code setup instead?

If you don’t want to spend time setting up servers, writing backend code, or configuring libraries, Syncfusion’s ready-to-deploy Document Processing Web APIs allow you to automate document processing workflows quickly and effortlessly. No extra license is required, as your existing Document SDK license already includes full access to these Web APIs. For more details, check out the documentation.

The final outcome: A faster, cheaper, office-free document workflow

Rebuilding our document pipeline with Syncfusion transformed daily operations, tasks that once felt fragile now run consistently fast and reliably across all environments.

What began as a fix for recurring Adobe/Office bottlenecks turned into a long‑term upgrade for the entire platform.

Key improvements

  • Faster performance
    • Rendering time dropped dramatically.
    • Tasks that took minutes now finish in seconds.
    • AI Coding Assistant speeds up complex document operations.
  • Lower operational costs
    • No Adobe/Office installations or licensing overhead.
    • Reduced CPU and memory usage.
    • Lightweight Web API Docker images make scaling cost‑efficient.
  • Greater stability at scale
    • No more COM errors, file locks, or random crashes.
    • High‑volume processing runs smoothly.
    • Parallel jobs stay consistent across distributed systems.
  • Stronger security & compliance
    • Fewer attack surfaces thanks to removing desktop apps.
    • Built‑in encryption, compliance formats, and safe rendering.
    • Self‑hosted Web API Docker images ensure full policy control.
  • Higher developer productivity
    • Fewer automation issues to troubleshoot.
    • Easier to maintain, purely .NET‑based pipeline.
    • AI Coding Assistant reduces repetitive coding.
  • Ready for future growth
    • Scales effortlessly across Windows, Linux, Docker, and Kubernetes.
    • Stable foundation for adding new formats and workloads.
    • Designed for long‑term cloud‑native expansion.

Frequently Asked Questions

Will migration to Syncfusion Document SDK require rewriting all my templates?

Not necessarily. Most templates (DOCX, XLSX, PPTX, HTML, PDF) can be reused as-is. Syncfusion’s libraries support fields, bookmarks, placeholders, mail merge, structured editing, and template-based document generation without requiring major layout changes.

Are Syncfusion Document SDKs secure enough for regulated industries?

Yes. The SDKs provide built-in support for encryption, redaction, digital signatures, secure PDF/A, form security, and isolated execution without external applications. These features align well with compliance requirements in finance, healthcare, legal, and government workflows.

Does migrating to Syncfusion Document SDK improve long-term maintainability and CI/CD stability?

Yes. Migrating eliminates fragile COM automation, reduces breakages caused by desktop updates, and removes dependencies on Office installations. With a pure .NET codebase, build pipelines become easier to maintain and more predictable, improving long-term stability and reducing technical hurdles.

Do Syncfusion Document SDKs provide advanced formatting or rendering quality?

Yes. Syncfusion Document SDKs include independent, high-fidelity rendering engines for PDF, Word, Excel, and PowerPoint. They ensure consistent, accurate output across environments and are designed to match or exceed desktop application rendering, even for complex layouts, without requiring Adobe or Office.

Do Syncfusion SDKs use a lot of CPU or memory?

No. Syncfusion libraries are optimized for multi-threaded processing, lazy loading, and high-volume workloads. They run purely in code without UI components, resulting in lower CPU and memory usage.

Can SDK-based workflows create dynamic, data-driven documents?

Yes. You can easily generate documents from database values, making it simple to create invoices, reports, dashboards, mail-merged files, and other dynamically populated documents.

Ready to transform your document pipeline?

Thank you for taking the time to follow our journey. For us, the Syncfusion Document Processing SDK has become the most reliable and future‑ready foundation for modern document automation, especially when traditional Adobe/Office‑based workflows could no longer keep up.

If your document pipeline is running into the same limitations we faced, you don’t have to keep patching temporary fixes. Switching to Syncfusion gave us:

  • A noticeably faster pipeline
  • Predictable, stable automation across environments
  • Lower operational costs without desktop dependencies
  • A cleaner, maintainable architecture
  • And a future‑proof platform built for cloud scale

Existing customers can download the latest version directly from their license and downloads page. New users can explore everything with a free 30-day trial and experience the full capabilities firsthand.

If you ever need help getting started or want guidance on your workflow, our team is here for you through the support forumsupport portal, or feedback portal. We’re always happy to assist!

Read the whole story
alvinashcraft
just a second ago
reply
Pennsylvania, USA
Share this story
Delete

Identity Columns Can’t Be Updated: #SQLNewBlogger

1 Share

I’m not sure I knew identity column values could not be updated. I ran into this while trying to solve a problem recently and had to check the error I was getting. This post shows what happened.

Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.

Setup

A quick setup for you. I need to go to the store soon, so hence, here is my sample table (created and filled by SQL Prompt).

CREATE TABLE Vodka
( id INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  brandname VARCHAR(100) NOT NULL
  , rating TINYINT
);

INSERT INTO dbo.Vodka
(
    brandname,
    rating
)
VALUES
('Grey Goose', 9),
('Belvedere', 8),
('Absolut', 7),
('Smirnoff', 6),
('Stolichnaya', 8),
('Ketel One', 9),
('Tito''s', 8),
('Ciroc', 7),
('Skyy', 6),
('Russian Standard', 7););

I then tried this:

2026-02_0157

OK, what about IDENTITY_INSERT. I know this isn’t an insert, but I thought this “unlocked” the identity column. It doesn’t work.

2026-02_0158

I searched on MS Learn and found the UPDATE statement documentation. In here, you can see what it says below. I can’t do this.

2026-02_0159

The error reference provides no info, but apparently this isn’t a thing.

What’s amazing to me is that in 30 years either I’ve never done this, or I’ve rarely encountered it and forgotten. Either is possible.

In any case, if I want to change this, I likely need to “re-insert” the row with a new value (either take the seed or use identity_insert) and then delete the old one.

Crazy.

SQL New Blogger

I was testing something else and ran across this. I decided it’s a great showcase of me learning something and giving a workaround. I’ll show the workaround in another post, which is actually about the thing I was doing.

Of course, that post needs to change.

This took about 10 minutes to write.

The post Identity Columns Can’t Be Updated: #SQLNewBlogger appeared first on SQLServerCentral.

Read the whole story
alvinashcraft
17 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Get AI-Ready With Erik: Helping Vectors Rank Better With Keyword Boosts

1 Share

Get AI-Ready With Erik: Helping Vectors Rank Better With Keyword Boosts


Video Summary

In this video, I delve into strategies to enhance vector search relevance in semantic search engines like Vector, focusing on SQL Server scenarios. I explore how keyword searches and full-text indexes can complement each other, discussing their strengths and limitations. By demonstrating practical techniques such as adding specific keywords to the query conditions and using boosts based on domain knowledge, I show how to refine search results to prioritize conceptual relevance over popularity or frequency. This approach is particularly useful when you need exact terms but also want the search engine to understand the context better, ensuring that highly relevant content isn’t missed due to semantic gaps.

Full Transcript

Erik Darling here with Darling Data. You know, trying to get my AI ready on. I’m gonna make sure that I’m prepared for the world falling apart around us and all that other good stuff. So today’s video is going to be about some things you can do that might help vectors rank things a bit better, right? Because, you know, like we talked about in the last video, vector might miss some stuff, right? It’s not, didn’t, we were looking for a SQL Server 2008 R2 when we got back a lot of SQL Server 2008. And then we were like, I want to find stuff about connection strings, but not any framework. And Vector was like, hey, any framework, you said those words, here you go. Uh, I got, I hear that right? Yeah. Ah, well, there you go. It’s some entity framework for you. Um, so semantic search is there to find conceptually related content, but it has a, it has a bad habit of missing exact terms. Uh, keyword search, like, you know, we should, we, I show you, I had to unfortunately show you some full text index stuff, which I feel dirty about still, but I’ll get over it when you buy something. Uh, keyword search finds exact terms, but may not rank by conceptual relevance, uh, as well. Right. Cause like, you know, we can, we can put in explicit words and we can find explicit words.

Which is great for stuff like, you know, error messages or like, you know, product versions and things like that. But you know, less so for like, ah, I think I want a sandwich. What kind of sandwich do I want? I don’t know. Who has sandwiches, right? Best sandwich. Right. So like, you know, stuff that, you know, you might, might have a harder time. Anyway. Um, so this is, what I’m going to show you is useful when a specific term must appear in results, but you want results ordered by conceptualization. Conceptual relevance, maybe rather than like popularity or something. Right. Cause you know, in the, in the stack overflow database, we have a score column, right? And like, you know, we could certainly like, you know, like, like factor score into things, which we will talk about.

But, uh, typically we, we, you know, if we’re, we’re spending all this time and effort and energy into getting our vectors, right. We, we, we would probably want to, uh, you know, involve them at least to some degree. Right. What’s the point of all this damn data. Don’t use it. Uh, so what we’re going to do is try to find stuff about SQL injection prevention, but we’re going to, we’re going to like give a secret. We’re going to give our, our search a little bit of help, right? Because we want to make sure that the title of the post is at least, you know, has SQL injection in it. Right.

So this is another form of keyword search kind of, um, it’s just an alternate to full text indexes. You can, you can throw some stuff like this in, I guess, in the where clause to help filter stuff out. There’s also another, um, uh, there’s also another, uh, technique that I’m going to show you down below. And this will at least get us to the point where, you know, all of the post titles have SQL injection in them. And then it’s sort of up to us to figure out like, okay, well, I mean like, you know, distance wise, right? Like, like all of these things do pretty okay.

But the scores are all over the place. We’ve got a zero, a 10, a 2700, right? But like, like, we’re not seeing, we’re not seeing stuff with like, uh, and working at questions too. Right. So like, like two things that we’re not doing here that like if in real life we would probably want to be doing is one, making sure that these questions have answers. Right. Cause like the question doesn’t have any answers. How do you like, it might just be a similar question if you’re doing like, you know, like content deduplication or whatever.

But if you want to like find related content that might have helpful things in it, aside from that, we would probably want to make sure that they had some answers. We also want, might want to factor a score into it somehow because score at least, you know, would help dictate like, Hey, this is a good question. Like, or at least this is a highly upvoted question. Good or not is, uh, come on. It’s stack overflow. Right.

Like something, something’s got really hot. A lot of upvotes, like more upvotes than I will ever get in my life. But, uh, you look at it and you’re like, you link to the document. You rat. Anyway, another, another option we have, right. Another way that we could potentially, uh, make that, make this all better somehow would be to add a boost based on the presence of certain words in, uh, in another title. Right. So, uh, if we, we, we, we, we, the way that we would do that is we could, I mean, we’re like, this is just to show you what the boost actually turns out being.

So if we’re like, if we’re off looking for like how to optimize database performance, you know, conceptually, we’re going to find stuff that’s pretty close to that. But like, we, we might, you know, kind of like, you know, know our data or like, you know, have some idea about like, like allow people to enter in some like, uh, like, uh, some like, uh, what do you call them? Uh, like backup search words or something. We’re like, Oh, like, yeah, I’m really interested in indexes. Right. Yeah. That’s a good one.

So we could add in some, some like booster stuff like that. And then we could adjust, uh, what the vector distance is based on that boost. And what we’ll end up with is a query that looks a bit like this, man. I’m actually going to highlight the whole thing. Cause the last thing I want in one of these videos is like an error. And then you’re like, uh, then I have to like go vector search the error message and figure to ask AI how to fix it.

And AI is like, Oh, well, it looks like maybe you forgot to highlight where you declared a variable. And then you want to be like, man, AI, you’re so good. You’re so smart. How’d you? God. Anyway, uh, what we have here is a few columns. Oh, we’ve got more than a few, but we have a few columns that we would care about, uh, the contents of for this exercise.

So we have the normal vector distance thing in here, right? And you know, these numbers are all just wonderful, right? They are all floating point numbers, I know, decimals. Nailed it. Uh, but then now then we have our boost column and all of these are, I mean, we don’t, we don’t have any, we didn’t hit on index or like maybe index got screened out past the top 15. Like maybe index didn’t help like the index one didn’t help. Cause like what we did up here, uh, was say if, you know, um, uh, minus case when title, like indexes, remember we have to, we want, we want to get these numbers lower.

Right. So we’re subtracting. This is not boosting by adding onto the vector distance. Cause that would make it further apart or make, make the things seem further apart in the numbers. Uh, we’re doing this by, um, subtracting the, like add relevance to certain keywords. So if the title is like index or the title is like performance or the title is like slow, then we would like have these multipliers, uh, get subtracted so that we could see more stuff.

So, um, like everything that we found at least because we, we matched conceptually, but the vector search very close to performance, everything was either a three or zero, right? So like, like a lot of these are three, three, three, and then a lot of them are zero, zero, uh, zero, zero and stuff. But you can see how the, the semantic distance got adjusted by the, uh, by the boost, right?

So like the one that started at 1077 got adjusted down to triple sevens, right? Uh, the one that started at 845 got boosted by nothing and stayed at 845. Uh, and then the one at 1358 got boosted by 0.03 and got boosted and it got adjusted to 1058.

So this is just another way of like helping like the vector distance stuff, like get some more, um, like contextual, like, you know, words in, in play and like adjust the score a little bit based on like certain things that are very closely rated. Like you might know about like domain knowledge stuff. Uh, but you know, the, the vector similarity search is just like, I, I, I got these floating points over here and I got these floating points over here and I got to figure out how close these floating points are.

It’s not thinking about like, you know, additional, like, like, Oh, well, if I had this other floating point, if I thought about this other floating point, I, I could, I could really, I could really get some better searches in here or some better search results in here. So this is just another way of doing that anyway. It’s a lot of stuff to think about with this, isn’t there?

Well, maybe someday, right? I don’t, I don’t know if anyone’s on SQL Server 2025. Yeah, they did.

They did just release a cumulative update one with a shockingly low number of, uh, fixes in it. Unfortunately, there were also no, uh, no, it was not graduation day for any of our preview features. So we’re still, still stuck there.

Anyway, that’s probably good for this one. Thank you for watching. I hope you enjoyed yourselves. I hope you learned something and I hope that you will use this, this wonderful, fabulous coupon code, uh, up, up, up here to buy the entire course. And, uh, I don’t know, maybe pay rent or a electric bill or phone bill or something.

I got all sorts of stuff I gotta do. All right. All right.

Anyway, thank you for watching. I’ll see you tomorrow.

Going Further


If this is the kind of SQL Server stuff you love learning about, you’ll love my training. Blog readers get 25% off the Everything Bundle — over 100 hours of performance tuning content. Need hands-on help? I offer consulting engagements from targeted investigations to ongoing retainers. Want a quick sanity check before committing to a full engagement? Schedule a call — no commitment required.

The post Get AI-Ready With Erik: Helping Vectors Rank Better With Keyword Boosts appeared first on Darling Data.

Read the whole story
alvinashcraft
21 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Fragments: February 25

1 Share

I don’t tend to post links to videos here, as I can’t stand watching videos to learn about things. But some talks are worth a watch, and I do suggest this overview on how organizations are currently using AI by Laura Tacho. There’s various nuggets of data from her work with DX:

  • 92.6% of devs are using AI assistants
  • devs reckon it’s saving them 4 hours per week
  • 27% of code is written by AI without significant human intervention
  • AI cuts onboarding time by half

These are interesting numbers, but most of them are averages, and those who know me know I teach people to be suspicious of averages. Laura knows this too:

average doesn’t mean typical.. there is no typical experience with AI

Different companies (and teams within companies) are having very different experiences. Often AI is an amplifier to an organization’s practices, for good or ill.

Organizational performance is multidimensional, and these organizations are just going off into different extremes based on what they were doing before. AI is an accelerator, it’s a multiplier, and it is moving organizations off in different directions. (08:52)

Some organizations are facing twice as many customer incidents, but others are facing half.

 ❄                ❄                ❄                ❄                ❄

Rachel Laycock (Thoughtworks CTO) shares her reflections on our recent Future of Software Engineering retreat in Utah.

  • We need to address cognitive load
  • The staff engineer role is changing
  • What happens to code reviews?
  • Agent Topologies
  • What exactly does AI mean for programming languages?
  • Self-healing systems

On the latter:

One of the most interesting and perhaps immediately applicable ideas was the concept of an ‘agent subconscious’, in which agents are informed by a comprehensive knowledge graph of post mortems and incident data. This particularly excites me because I’ve seen many production issues solved by the latent knowledge of those in leadership positions. The constant challenge comes from what happens when those people aren’t available or involved.

 ❄                ❄                ❄                ❄                ❄

Simon Willison (one of my most reliable sources for information about LLMs and programming) is starting a series of Agentic Engineering Patterns:

I think of vibe coding using its original definition of coding where you pay no attention to the code at all, which today is often associated with non-programmers using LLMs to write code.

Agentic Engineering represents the other end of the scale: professional software engineers using coding agents to improve and accelerate their work by amplifying their existing expertise.

He’s intending this to be closer to evergreen material, as opposed to the day-to-day writing he does (extremely well) on his blog.

One of the first patterns is Red/Green TDD

This turns out to be a fantastic fit for coding agents. A significant risk with coding agents is that they might write code that doesn’t work, or build code that is unnecessary and never gets used, or both.

Test-first development helps protect against both of these common mistakes, and also ensures a robust automated test suite that protects against future regressions.

 ❄                ❄                ❄                ❄                ❄

Aaron Erickson is one of those technologists with good judgment who I listen to a lot

As much fun as people are having with OpenClaw, I think the days of “here is my agent with access to all my stuff” are numbered.

Fine scoped agents who can read email and cleanse it before it reaches the agentic OODA loop that acts on it, policy agents (a claw with a job called “VP of NO” to money being spent)

You structure your agents like you would a company. Insert friction where you want decisions to be slow and the cost of being wrong is high, reduce friction where you want decisions to be fast and the cost of being wrong is trivial or zero.

I’ve posted here a lot about security concerns with agents. Right now I think this notion of fine-scoped agents is the most promising direction. Last year Korny Sietsma wrote about how to mitigate agentic AI security risks. His advice included to split the tasks, so that no agent has access to all parts of the Lethal Trifecta:

This approach is an application of a more general security habit: follow the Principle of Least Privilege. Splitting the work, and giving each sub-task a minimum of privilege, reduces the scope for a rogue LLM to cause problems, just as we would do when working with corruptible humans.

This is not only more secure, it is also increasingly a way people are encouraged to work. It’s too big a topic to cover here, but it’s a good idea to split LLM work into small stages, as the LLM works much better when its context isn’t too big. Dividing your tasks into “Think, Research, Plan, Act” keeps context down, especially if “Act” can be chunked into a number of small independent and testable chunks.

 ❄                ❄                ❄                ❄                ❄

Doonesbury outlines the opportunity for aging writers like myself. (Currently I’m still writing my words the old fashioned way.)

 ❄                ❄                ❄                ❄                ❄

An interesting story someone told me. They were at a swimming pool with their child, she looked at a photo on a poster advertising an event there and said “that’s AI”. Initially the parents didn’t think it was, but looking carefully spotted a tell-tale six fingers. They concluded that fresher biological neural networks are being trained to quickly recognize AI.

 ❄                ❄                ❄                ❄                ❄

I carefully curate my social media streams, following only feeds where I can control whose posts are picked up. In times gone by, editors of newspapers and magazines would do a similar job. But many users of social media are faced with a tsunami of stuff, much of it ugly, and don’t have to tools to control it.

A few days ago I saw an Instagram reel of a young woman talking about how she had been raped six years ago, struggled with thoughts of suicide afterwards, but managed to rebuild her life again. Among the comments – the majority of which were from men – were things like “Well at least you had some”, “No way, she’s unrapeable”, “Hope you didn’t talk this much when it happened”, “Bro could have picked a better option.” Reading those comments, which had thousands of likes and many boys agreeing with them, made me feel sick.

My tendencies are to free speech, and I try not to be a Free Speech Poseur, but the deluge of ugly material on the internet isn’t getting any better. The people running these platforms seem to be “tackling” this problem by putting their heads in the sand and hoping it won’t hurt them. It is hurting their users.

Read the whole story
alvinashcraft
46 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Order Lunch Without Leaving Your AI Agent

1 Share

Ba'al Falafel salads menu in goose showing Couscous Salad, Red Cabbage Salad, and Beets Apple Salad with photos and prices

If you're anything like me, deciding what to eat for lunch is harder than it should be. Now add dietary restrictions on top of that (I'm coeliac so have to eat gluten-free) and suddenly finding a restaurant becomes a whole research project. Searching menus, cross-referencing reviews, checking if that one sandwich actually has gluten in it... it's exhausting.

What if your AI agent could just handle all of that for you?

With the Neighborhood extension in goose, that's exactly what happens. You tell goose where you are, what you need, and it finds nearby restaurants, shows you interactive menus with photos, adds items to your cart, and gets you all the way to checkout, without ever leaving the chat. The only time you step outside goose is to tap "pay."

Let me walk you through how it works.

Setting up the Neighborhood extension

First things first: you need the extension installed. In goose Desktop, click on Extensions, then Browse Extensions, and search for "Neighborhood."

You'll see it right away: Discover nearby restaurants, browse menus, and place takeout orders through natural conversation. Sellers are currently US-based, but even if you're outside the US, it's worth trying out just to see the experience.

Once installed, make sure the extension is enabled in your current chat session. You can check this by clicking the extensions icon in the chat and toggling Neighborhood on.

Quick Install

Install the Neighborhood extension directly in goose Desktop, or use goose configure in the CLI to add a Remote Extension (Streamable HTTP) with the endpoint https://connect.squareup.com/v2/mcp/neighborhood.

Finding restaurants that actually work for you

Here's where it gets fun. Instead of opening a delivery app and scrolling through hundreds of options, you just tell goose what you need:

I'm looking to get lunch today. I'm at 375 West Broadway, New York. I'm gluten-free and I'm playing sport later, so looking for something light. Use the neighborhood extension to find options for me.

That's it. One prompt. goose takes your location, your dietary needs, and even the fact that you are playing sport later, and uses all of it to find the right restaurants.

Behind the scenes, goose calls the Neighborhood MCP server's get-restaurants-nearby tool with your address and a max distance and in return gets a list of restaurants in JSON format. But what you see is something much nicer than raw JSON.

Nearby restaurants displayed as interactive cards in goose with recommendations for gluten-free and light options

Interactive restaurant cards appear right in the chat as a carousel you can scroll through with an arrow, showing Square Restaurant, Kat's Gelateria, Steam & Sip, and more, each with their category, address, and a View menu button. No browser tabs. No app switching. It's all right there.

And goose doesn't just list restaurants. It thinks about your situation. Given my gluten-free and light meal needs, goose highlighted a couple of spots that stand out: Kale & Things as a perfect option for a light, healthy lunch, Ba'al Falafel since falafel can often be gluten-free friendly, and Pantry New York for lighter options. It even asked if I'd like to pull up the menu so we can find something gluten-free and light before my game. That kind of contextual reasoning is what makes this feel so different from a regular food app.

Browsing menus with images, right in the chat

This is the part that genuinely blew me away.

When you ask goose to open a restaurant's menu or when you click on the view menu button, it doesn't just give you a text list. Thanks to MCP Apps, you get a full interactive menu rendered directly inside the chat, complete with category tabs, food photos, prices, and descriptions.

I'd like to view the Ba'al Falafel menu.

Ba'al Falafel menu showing sandwiches with food photos, prices, and descriptions inside goose

Sandwiches. Salads. Combo platters and rice. Soups. Pastries and dessert. Sides. Drinks. Homemade drinks. Smoothies. Catering. It's all there, and it's all browsable. You can click through the category tabs, scroll through dishes, and see exactly what you're ordering before you commit.

I could click on Salads to see the Couscous Salad, Red Cabbage Salad, and Beets Apple Salad, flip over to Homemade drinks to check out the Mint Lemonade, Ginger Lemonade, and Watermelon Basil, all without leaving the chat window.

Homemade drinks tab showing Mint Lemonade, Ginger Lemonade, and Watermelon Basil with photos and prices

This is not a stripped-down text menu. This is a real, visual, interactive experience powered by an MCP App rendering inside goose.

Meanwhile, goose is also helping me decide. It reminded me that for my gluten-free, light lunch, the salads (Tzatziki, Shepherd, Beets Apple, Red Cabbage, Grilled Zucchini) and sides like hummus, roasted cauliflower, and baba ghanoush are my best bets. It even warned me to steer clear of anything with pita, couscous, bulgur, or filo pastry. Helpful and honest.

Building the order

Once I'd browsed the menu and made my picks, I just told goose what I wanted:

Let's add the Beets Apple Salad, Lentil Soup, and a Ginger Lemonade.

goose added everything to the cart and rendered it as another interactive MCP App right in the chat:

Order summary showing Beets Apple Salad, Lentil Soup, and Ginger Lemonade with subtotal and checkout button

There it is, my Beets Apple Salad ($8.00), Lentil Soup ($5.50), and Ginger Lemonade ($3.50). Subtotal: $17.00. And a big Check out button ready to go.

goose even confirmed: "Your cart is ready! 🎉 A nice light, gluten-free lunch to fuel your game."

If I wanted to make changes, add an item, remove something, swap a drink, I could just ask goose in natural language and it would update the cart. No fiddling with plus and minus buttons.

Checkout, the only time you leave goose

When you click Check out, you're taken to the payment page powered by Cash App. This is the one step that happens outside goose, and for good reason, payment needs to be secure and handled directly.

From there you can see your pickup time, enter your phone number, pay with Google Pay or a credit card, add a tip, redeem a coupon, and even leave a note (like "make sure it's gluten-free!"). Then you place the order and go pick up your lunch.

The entire flow, from "I'm hungry" to "order placed", started with a single prompt.

Why this matters

This isn't just a cool demo. It's a glimpse at how AI agents are changing everyday tasks.

Think about what happened here:

  • One prompt replaced opening an app, searching for restaurants, filtering by dietary needs, reading reviews, browsing menus, and adding to a cart
  • Context-aware recommendations meant goose factored in my gluten-free diet and my evening sport plans without me having to search for "gluten-free pre-workout meals near my location"
  • Interactive MCP Apps rendered rich, visual menus with photos directly in the chat, no browser needed

The Neighborhood extension is a perfect example of what MCP servers can do when they go beyond text. By combining tool calls with MCP Apps for rich UI, the experience feels less like talking to a chatbot and more like having a personal assistant who actually knows the neighborhood.

Try it yourself

Ready to order lunch with goose? Here's how to get started:

  1. Install the Neighborhood extension, one-click install for goose Desktop, or add it via goose configure in the CLI
  2. Tell goose where you are and what you're in the mood for, include dietary needs, what you're doing later, or any other context
  3. Browse the menus, click through the interactive restaurant cards and menu tabs
  4. Build your order, just tell goose what you want in plain English
  5. Check out, click the button and complete payment

Check out the Neighborhood extension docs for more details, and try combining it with other goose extensions, like your calendar, for even more powerful workflows.

Watch the full walkthrough

See the entire flow in action:

Read the whole story
alvinashcraft
56 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Disrupting malicious uses of AI | February 2026

1 Share
Our latest threat report examines how malicious actors combine AI models with websites and social platforms—and what it means for detection and defense.
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories