When running JMeter load tests, you often need to access sensitive information like API keys, passwords, or connection strings. Azure Key Vault is the perfect solution for storing these secrets, but connecting JMeter to Key Vault requires proper authentication, especially when you are intending to run it from self-hosted agents.
I recently had build and run load tests, and my initial intent was to leverage Azure Load Testing service. Azure Load Testing service provides a convenient way to retrieve secrets from Key Vault using a managed identity through the __GetSecret JMeter function.
In the rapidly evolving landscape of generative AI, developing applications based on Large Language Models (LLMs) presents a unique set of challenges and opportunities. As I have recently learned, one of the most critical steps in this journey is actively seeking out and using early user feedback. In this blog post, I will explain why it’s so crucial to listen to users right from the start.
Gaining Insights into User Interaction When building LLM-based applications, understanding how users interact with your tool is crucial.
Using vector storage and search is becoming increasingly popular due to the momentum that Generative AI has gained. It is a critical part of many use cases that require relevant context for prompts, while staying within the token limit of LLMs.
There are many options available for storing vector data and performing searches. Some are provided as third-party hosted APIs, while others can be deployed as containers to Kubernetes clusters. There is also an interesting alternative: using a good old PostgreSQL database with the pgvector extension!
In one of the projects I’m involved in, MongoDB is used to store data for services. We were seeing some unexpected behavior in one part of the system, and we were able to narrow down the issue to be a long-running query against one of the collections. Due to the size of that collection, the query was taking up to 2.5 hours!
At first, it was obvious that we need an index of some sort to speed things up.
There are many CMS systems on the market at the moment. All of them allow users to create and manage content, each of them in it’s own specific way. I have been working with several CMS systems in my career. Each of the system is different from another but there are some pieces that are common for most of them. In this post I would like to share with you my observations and thoughts about a capablitity that many CMS systems have, which often is a source of problems.
Probably almost any EPiserver user knows that to move blocks between folders in EPiserver you need to able to delete items from the source folder. And it’s fine for most of the time and we don’t think too much about it. Until we run into an issue, of course. Things can get tricky when we are faced with some specific requirements, which do not fit into the out-of-the-box capabilities of EPiserver.
One of the most important pieces of EPiserver for content editing is the support for rich text. EPiserver integrates with one of the most popular and well known rich text editors for web browsers - TinyMCE. Out of the box TinyMCE is packed with features and configuration options and its ecosystem is packed with plugins (both free and paid), that can greatly expand its capabilities.
I have recently been asked to add support for PowerPaste plugin for the TinyMCE editor in EPiserver.
I suppose all of you know the importance of not storing secrets for connections to databases, APIs, identity providers etc. in the repositories alongside with the code. There are many ways to keep them away from the source code in .NET Core and in .NET Framework.
To avoid storing secrets in code for EPiserver, the user secrets feature can be leveraged (provided by Microsoft.Configuration.ConfigurationBuilders.UserSecrets NuGet package). However, there is an issue when upgrading/initializing Episerver database using Initialize-EPiDatabase and Update-EPiDatabase in the Visual Studio Package Manager when the UserSecrets package is referenced.