MindByte Issue #80: Are you a Git stacker?

Using RAG to read unstructured data, new version of EventCatalog, Stacking your Pull Requests, exposing CosmosDB data.

Hi and welcome back!

To ensure you keep getting these updates seamlessly, please move this email to your primary inbox or mark it as important. A quick reply like "got it" also helps boost visibility. This edition covers interesting topics such as:

  • The use of RAG by GitHub to process unstructured data

  • New version of EventCatalog

  • What is stacking and how does it help with Pull Requests?

  • A quicker way to expose your CosmosDB data

New here? Subscribe here to stay updated.

A shameless plug; one of my other interests is FinOps, and what that means for developers in particular. I try to keep this current newsletter to GitHub, Azure and dotnet, but I did start a new one about Azure FinOps Essentials. Follow along if you want a weekly tip to optimize your Azure cost.

Azure FinOps EssentialsWelcome to Azure FinOps Essentials, your weekly source for actionable tips to optimize Azure costs, understand spending, and implement best FinOps practices—helping you unlock Azure's full potentia...

GitHub Digest

Unavoidable and expected; we now have the GPT-4o model in the Copilot Enterprise features on the GitHub.com website and in the mobile app. This model is not only faster, it also has better quality responses.

Reading structured data is relatively easy compared to unstructured. However, there is a lot more unstructured data available, certainly in GitHub. Your source code, discussions, issues, wiki, commit and review messages etc are all unstructured and as such hard to process.

But when you do want to process this data, you can use Large Language Models to identify complex patterns in unstructured data. Read the blog post to learn how to use RAG to handle these kinds of data.

Coding Corner

Although not new (EventCatalog is from Jan 2022), it did receive a version 2 upgrade. EventCatalog is a system to document event-driven architectures and the new version not only has a UI refresh, but also support for new resources, versioning, discoverability and much more.

I have a love/hate relationship with Pull Requests. From a compliance perspective, they are great to add that second pair of eyes principle. However, they do disrupt your flow. You need to wait for your code to be reviewed, merged to the default branch, update your local main branch and start a new feature branch.

It adds delays, context switching and complexity. The stacking workflow is not new, but I heard about this recently from some colleagues. It is a process, with some tooling, which allows you to continue working from branches while still doing Pull Requests. Read how it works on the stacking website:

Azure Updates & Insights

Remember OData, which allows for a simple way to expose your data over the internet? By adding some nuget packages and enabling it at the startup, you suddenly had an endpoint that could be used to access a database.

But what if you do not want to write any layer and just want to expose data stored in CosmosDB with a REST or Graphql interface? Well, MS released a data API builder to allow you to do so, including authentication, logging, retry logic etc. There are various hosting options available.

This can make it a nice fit for Javascript frontend applications where you use a REST call to interact with data in CosmosDB without needing a custom backend.

.NET Nook

Are you familiar with the top OAuth2 flows? An important one is the Authorization Code Flow, used to get access to APIs. Learn how this works in the below blog post:

I m blessed to be able to drive a Tesla, and the software in that car is really good. It has a nice feature that tries to predict where I m going to so it can offer road navigation to that destination. In its simplest form it know that in the morning I most likely drive to work, while at the end of the day I go home, but it does understand some more patterns.

Ayende wondered how to implement a system like this and created a sample solution which is worth to explore:

Why would you ever want a ReadOnlySet<T> ? There sure is a good use case for it and Steven Giesel will tell you what it is:

Closing Thoughts

Thank you for reading this week’s edition!

Your feedback is invaluable, so if you have any thoughts, questions, or suggestions, please don't hesitate to reach out by simply replying to this mail.

If you enjoyed this update and want to continue receiving more, make sure to subscribe here.

I appreciate your time and look forward to hearing from you!

Did you like this edition?

Login or Subscribe to participate in polls.

Reply

or to participate.