Skip to main content

Posts

Six words that define your leadership

I was listening to the Coaching for Leaders podcast recently, and Scott Keller shared something that stopped me mid-stride: the six-word story exercise. His example was the famous Ernest Hemingway line (though its true authorship is debated): "For sale: baby shoes. Never worn." Six words. An entire world of heartbreak, hope deferred, a nursery that stayed empty. I must have read that sentence three times, feeling the weight of everything left unsaid. And then Keller posed the challenge: What's your six-word leadership story? I sat with my notebook open. Pen ready. And... nothing. The power of constraint There's something almost unfair about this exercise. Six words feels impossibly small. I've written mission statements, vision documents, strategic plans that span pages. I've crafted carefully worded emails, given presentations with dozens of slides. Six words? But that's exactly the point. When you have six words, you can't hide behin...
Recent posts

Github Copilot on the command line (continued)

Yesterday I started exploring the Github Copilot CLI. Turned out that there was more to talk about than what would be good fit for one blog post. So here is a continuation of my previous post. In case you missed, go read that post first before continuing here. Ready? Let's dive in again! Let’s explore some features Switching between models The Github Copilot CLi was using Claude Code in my previous examples. I don’t know if that is the default or that there was a specific reason that this model was used by the CLI but you can easily switch between models through the /model command. Hit enter to get a list of available models: Select a mode and hit enter: Extensibility with MCP servers Copilot CLI ships with the GitHub MCP (Model Context Protocol) server built-in, enabling repository interactions and issue searches. But you can extend it further by adding any MCP server from the registry using /mcp . Want to integrate Playwright for browser testing? Need to connect ...

Github Copilot on the command line

In my continuous journey to become an AI native developer, I reserve some time every day to discover new tools and try new ways of working. Today I decided to give the new Github Copilot CLI a try. As developers we spend a significant portion of our day in the terminal. Cloning repositories, installing dependencies, debugging issues, running builds, and navigating codebases—all without leaving the command line. But when you needed AI assistance from Github Copilot, you had to break your flow and switch to your editor or browser. Other AI vendors like Claude Code even offers a command line first experience, but a similar experience for Github Copilot was missing. Until now. What is GitHub Copilot CLI? GitHub Copilot CLI brings AI-powered assistance directly to your terminal. It's a command-line tool that lets you leverage the power of GitHub Copilot without ever leaving your shell. No context switching, no workflow interruptions—just you, your terminal, and an intelligent as...

Securing Your ASP.NET Core App with Authorization Fallback Policy

Today, when building web applications, security has to be a top priority. An easy mistake to make is forgetting to add the [Authorize] attribute to controllers or actions inside your ASP.NET Core backend. This creates a security vulnerability where sensitive pages become accessible to unauthenticated users. Of course, you could create a SecureBaseController class that includes this attribute but now you need to remember to inherit from this base class. Instead of remembering to secure every single endpoint, what if we could flip the script and make authentication the default? Setting an Authorization Fallback Policy ASP.NET Core provides a powerful feature called the Authorization Fallback Policy . This allows you to require authentication globally across your entire application, making security the default rather than an opt-in feature. To implement it, in your Program.cs file, configure the authorization services with a fallback policy that requires authenticated users: ...

Using connection colors in SQL Server Management Studio to prevent database disasters

Every developer has felt that moment of panic: "Did I just run that DELETE statement on production?" A colleague (thanks Jef!) pointed out a nice trick in SQL Server Management Studio to avoid such kind of heart-stopping moments. Turns out there is simple yet powerful feature in SQL Server Management Studio (SSMS) called Connection colors that does exactly what the name suggests. Let’s find out how to use this feature… The problem: Context switching gone wrong When you're managing multiple SQL Server environments—development, staging, and production—it's surprisingly easy to lose track of which connection you're working with. All it takes is one misplaced query execution, and suddenly you're: Dropping tables in production Running test data scripts on live systems Executing resource-intensive queries during peak hours Modifying critical data without proper backups The consequences can range from embarrassing to career-threatening. Th...

Use request chaining in HTTP files

By default every request inside your HTTP file is independent from any other request. But what if you want to use the output of one request as the input of another request? This is exactly what you can achieve using request variables. Creating resources with dependencies As an example I created a new ProjectController that we will use to: Create a new project Use the returned project id to create and assign a new task to this project I updated the http file with a new request to create the project. Notice that I included a createProject variable to name the request. I can now use this createProject variable in other requests. In our example I extract the project id value from the response: The following table describes the syntax in more details: Element Description requestVarName ( login in this case ) Request Variable which is being referenced. response|request Whether the value will be...

Use shared variables in HTTP files

Yesterday I explained how you can introduce environment specific variables when using .http files in Visual Studio. But now we need to repeat these variables for every environment even when they stay the same. In this post I show how to avoid this by introducing the special $shared environment. The $shared environment Visual Studio 2022 version 17.12 introduced the $shared environment, which is perfect for variables that should be available across all environments: You can now use these shared variables no matter which environment you have selected: More information Use .http files in Visual Studio 2022 | Microsoft Learn