This week's highlights bring together insights on evolving API security, the realities of integrating AI into your workflow, and tools that can help streamline the testing process. I selected these pieces for their practical advice on simplifying everyday development tasks while building more robust and resilient infrastructure.
Programming
Web Application & API Protection: An Overview (John Brawner) - I knew many security tools existed, and obviously I use some. But I learned a lot in this post. WAAP emerged because WAF alone was not enough to address APIs, bots, DDoS, and modern cloud traffic patterns in a single runtime protection model.
AI is ready. Your APIs probably aren't (Matt Gray) - Postman has always been an interesting tool. I've been using something else for a while but am thinking about exploring it again!
Sharing my Reading Notes is a habit I started a long time ago, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
Reka just released Reka Edge, a compact but powerful vision-language model that runs entirely on your own machine. No API keys, no cloud, no data leaving your computer. I work at Reka and putting together this tutorial was genuinely fun; I hope you enjoy running it as much as I did.
In three steps, you'll go from zero to asking an AI what's in any image or video.
What You'll Need
A machine with enough RAM to run a 7B parameter model (~16 GB recommended)
Git
uv, a fast Python package manager. Install it with:
curl -LsSf https://astral.sh/uv/install.sh | sh
This works on macOS, Linux, and Windows (WSL). If you're on Windows without WSL, grab the Windows installer instead.
Step 1: Get the Model and Inference Code
Clone the Reka Edge repository from Hugging Face. This includes both the model weights and the inference code:
git clone https://huggingface.co/RekaAI/reka-edge-2603
cd reka-edge-2603
Step 2: Fetch the Large Files
Hugging Face stores large files (model weights and images) using Git LFS. After cloning, these files exist on disk but contain only small pointer files, not the actual content.
First, make sure Git LFS is installed. The command varies by platform:
Then pull all large files, including model weights and media samples:
git lfs pull
Grab a coffee while it downloads, the model weights are several GB.
Step 3: Ask the Model About an Image or Video
To analyze an image, use the sample included in the media/ folder:
uv run example.py \
--image ./media/hamburger.jpg \
--prompt "What is in this image?"
Or pass a video with --video:
uv run example.py \
--video ./media/many_penguins.mp4 \
--prompt "What is in this?"
The model will load, process your input, and print a description, all locally, all private.
Try different prompts to unlock more:
"Describe this scene in detail."
"What text is visible in this image?"
"Is there anything unusual or unexpected here?"
What's Actually Happening?
You don't need this to use the model, but if you're anything like me and can't help wondering what's going on under the hood, here's the magic behind example.py:
1. It picks the best hardware available.
The script checks whether your machine has a GPU (CUDA for Nvidia, Metal for Apple Silicon) and uses it automatically. If neither is available, it falls back to the CPU. This affects speed, not quality.
2. It loads the model into memory.
The 7 billion parameter model is read from the folder you cloned. This is the "weights": billions of numbers that encode everything the model has learned. Loading takes ~30 seconds depending on your hardware.
processor = AutoProcessor.from_pretrained(args.model, trust_remote_code=True)
model = AutoModelForImageTextToText.from_pretrained(args.model, ...).eval()
3. It packages your input into a structured message.
Your image (or video) and your text prompt are wrapped together into a conversation-style format, the same way a chat message works, except one part is visual instead of text.
4. It converts everything into numbers.
The processor translates your image into a grid of numerical patches and your prompt into tokens (small chunks of text, each mapped to a number). The model only understands numbers, so this step bridges the gap.
5. The model generates a response, token by token.
Starting from your input, the model predicts the most likely next word, then the next, up to 256 tokens. It stops when it hits a natural end-of-response marker.
6. It converts the numbers back into text and prints it.
The token IDs are decoded back into human-readable words and printed to your terminal. No internet involved at any point.
If you prefer watching and reading, here is the video version:
That's Pretty Cool, Right?
A single script. No API key. No cloud. You just ran a 7 billion parameter vision-language model entirely on your own machine, and it works whether you're on a Mac, Linux, or Windows with WSL, which is what I was using when I wrote this.
This works great as a one-off script: drop in a file, ask a question, get an answer. But what if you wanted to build something on top of it? A web app, a tool that watches a folder, or anything that needs to talk to the model repeatedly?
That's exactly what the next post is about. I'll show you how to wrap Edge as a local API, so instead of running a script, you have a service running on your machine that any app can plug into. Same model, same privacy, but now it's a proper building block.
Balancing cloud innovation with AI practicality, this week’s notes blend Azure updates, .NET’s AI roadmap, and clever Python hacks. A sharp reminder on burnout prevention anchors the mix, while creative teams and DevOps culture inspire fresh perspectives. From Docker model runners to Git worktrees, every corner here offers actionable insights or a spark of curiosity, no clichés, just tools and truths for developers navigating the stormy seas of tech.
493: Git's most powerful but underutilized tool (Merge Conflict) - Great episode where I finally understood what Git work trees are and how to use them in VSCode. Frank is also hilarious in this episode with all the emojis
How a Creative Team Learned to Love Azure DevOps (Golnaz ) - More teams should take an example from this and bend tools to fully help them. We shouldn't accept the status quo. It's also great to see the synergy between different teams.
This week’s Reading Notes bring together programming tips, AI experiments, and cloud updates. Learn to build Python CLI tools. Untangle GitHub issue workflows. Try running AI models locally. Catch up on Azure news. And explore ideas around privacy and cloud architecture. Short reads. Useful takeaways.
5 Minimal API myths and the real truth (David Grace) - Nice post, I really like minimal API, and it's true that people are asking themselves a lot of questions. Here you will find many great answers.
Who Decides Who Doesn’t Deserve Privacy? (Troy Hunt) - A very interesting post about privacy. We should also think about all that when designing systems and applications.
In the ever-evolving tech landscape, this week’s reading notes blend cutting-edge tools with timeless insights. From Python’s growing role in .NET ecosystems to hands-on experiments with AI-powered data ingestion, there’s plenty to explore. Meanwhile, reflections on community, confidence, and finding our “second place” in a fast-paced world add a human touch. Jump into how developers are pushing boundaries, embracing new editors, and learning that growth starts with choosing courage, even when it’s scary.
Trying out the Zed editor on Windows for .NET and Markdown (Andrew Lock) - I heard of Zed and was planning to try it, but this post saved me some time. The current unsupported razor pages is a show-stopper for me. But maybe later, if things changed.
Podcasts
The 4 ways to rebuild your "second place" for belonging (Modern Mentor) - Did it all start because of a TV show?! Nevertheless, an interesting episode to help us find our spot and make those "first day work buddy" a better experience.
All good things must come to an end (Salma Alam Maylor) - I totally understand, but it is sad news to see her go out of the streaming business. She is amazing, I'm sure she's still rocks whatever she does.
This week covers Microsoft’s open-source Agent Framework for agentic AI, prompt-injection risks and mitigations, and the causes of language model hallucinations. It also highlights NuGet package security updates, Azure SQL Data API Builder improvements, Reka’s new Parallel Thinking feature, and the latest in AI benchmarking.
MCP Prompt-Injection: The Trust Paradox in AI (Saurabh Davala, Sundeep Gottipati) - This is a good post to learn to start learning about the real danger. To be aware of the potential risk and learning about what we can do.
Why language models hallucinate - Very interesting post that explains the reason why we still have hallucinations and how it works
Sharing my Reading Notes is a habit I started a long time ago, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
Welcome to the 655th Reading Notes. This edition explores embedding Python in .NET, working with stacked git branches, and an introduction to cloud-native. Plus, a quick tip for the Azure Portal and using local AI for code reviews.
Introduction to Cloud Native Computing (TNS Staff) - Very complete and interesting article that is the perfect point to get started with clout native application covering what it is the strategy the architecture everything
Sharing my Reading Notes is a habit I started a long time ago, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
In this week Reading Notes, we explore a diverse range of updates and insights from the tech world. From the latest features in the Azure SDK and Developer CLI, to an introduction to .NET Aspire and its innovative approach to Infrastructure as Code, there's plenty to catch up on.
Jump into discussions on AI productivity, free Azure SQL tiers, and even a refreshing podcast on stress-free living.
Let's get started!
Cloud
Azure SDK Release (March 2025) (Hector Norzagaray) - Many languages are supported and now Rust is part of it. There also some new bits for Node and Python.
Does AI really make you more productive? (Salma Alam-Naylor) - I trust AI as much as I trust any code found after googling.Meaning it might works but to I need to understand what it is doing. There is no trust, is always gambling.
Sharing my Reading Notes is a habit I started a long time ago, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
During the holidays, I embarked on a fun project to create a visual countdown for important dates. Inspired by howmanysleeps and hometime from veebch, I wanted to build a countdown that didn't rely on Google Calendar. Instead, I used a Raspberry Pi Pico and some custom code to achieve this.
After cloning the repo, navigate to the src/NextEvent/ folder and use the Azure Developer CLI to initialize the project:
azd init
Enter a meaningful name for your resource group in Azure. To deploy, use the deployment command:
azd up
Specify the Azure subscription and location when prompted. After a few minutes, everything should be deployed. You can access the URL from the output in the terminal or retrieve it from the Azure Portal.
How to Set Up the Raspberry Pi Pico
Edit the config.py file to add your Wi-Fi information and update the number of lights on your light strip.
You can use Thonny to copy the Python code to the device. Copy both main.py and config.py to the Raspberry Pi Pico.
How It Works
The website creates a JSON file and saves it in a publicly accessible Azure storage.
When the Pi is powered on, it will:
Turn green one by one all the lights of the strip
Change the color of the entire light strip a few times, then turn it off
Try to connect to the Wi-Fi
Retrieve the timezone, current date, and settings from the JSON file
If the important date is within 24 days, the countdown will be displayed using random colors or the specified colors.
If the date has passed, the light strip will display a breathing effect with a random color of the day.
The Code on the Raspberry Pi Pico
The main code for the Raspberry Pi Pico is written in Python. Here's a brief overview of what it does:
Connect to Wi-Fi: The connect_to_wifi function connects the Raspberry Pi Pico to the specified Wi-Fi network.
Get Timezone and Local Time: The get_timezone and get_local_time functions fetch the current timezone and local time using online APIs.
Fetch Light Settings: The get_light_settings function retrieves the important date and RGB colors from the JSON file stored in Azure.
Calculate Sleeps Until Special Day: The sleeps_until_special_day function calculates the number of days until the important date.
Control the LED Strip: The progress function controls the LED strip, displaying the countdown or a breathing effect based on the current date and settings.
The Configuration Website
The configuration website is built in C#. It's a Blazor server webapp, and I used .NET Aspire to make it easy to run it locally. The UI uses FluentUI-Blazor so it looks pretty, without effort.
The website allows you to update the settings for the Raspberry Pi Pico. You can set the important date, choose custom colors, and save these settings to a JSON file in Azure storage.
Little Extra
The website is deployed in Azure Container App with a minimum scaling to zero to save on costs. This may cause a slight delay when loading the site for the first time, but it will work just fine and return to "dormant" mode after a while.
I hope you enjoyed reading about my holiday project! It was a fun and educational experience, and I look forward to working on more projects like this in the future.
What's Next?
Currently the project does a 24 days countdown (inspired from the advent calendar). I would like to add a feature to allow the user to set the number of days for the countdown. I would also like to add the possibility to set the color for the breathing effect (or keep it random) when the important date has passed. And lastly, I would like to add the time of the day when the light strip should turn on and off, because we all have different schedule 😉 .
Last thoughts
I really enjoyed doing this project. It was a fun way to learn more about the Raspberry Pi Pico, micro-Python (I didn't even know it was a thing), and FluentUI Blazor. I hope you enjoyed reading about it and that it inspired you to create your own fun projects. If you have any questions or suggestions, feel free to reach out, I'm fboucheros on most socials.
Ready for another round of intriguing reads and insightful listens? This week's edition of Reading Notes dives into the seamless blending of Python and .NET, fresh monetisation strategies in open source, AI innovations, and thought-provoking podcast discussions.
Using an AI Assistant to Script Tools (Docker Labs) - First post of a series that looks how different code written uses AI to write code ,script, and other things.
Podcast
How Simple is as Simple as Possible with Mark Rendle (.NET Rocks!) - How complex your application should be? Is it possible to make great application with a more simple and straightforward approaches? Nice episode that discuss today's status.
Does Donovan Brown hate retirement? (You're So Quiet) - One year already for Donovan! Well this couple looks good. Learn more about the first adjustment and the current "state of mind".
Sharing my Reading Notes is a habit I started a long time ago, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
It's been five hundred weeks, this is more than nine years! Who knew I will keep doing that for so long...
If you are new around here, welcome, The Reading Notes are a curated list of all the articles, blog posts, podcast episodes, and books that catch my interest during the week and that I found interesting. It's a mix of the actuality and what I consumed.
If you think you may have interesting content, share it!
Cloud
Bicep Access policies and Managed Identity (Gregor Suttie) - This is a nice post that connects docs pages and different blog posts and information so we have the big picture.
Cloud-Native Application Security (Samir Behara) - This post is listing so many best practices, patterns, and anti-patterns, it is a must for any "cloud-native people".
Greg on The Genius of Routine (What's Essential) - Habits are very powerful tools in our toolbox for so many things... It's worth learning more about it.
Every Monday, I share my "reading notes". Those are a curated list of all the articles, blog posts, podcast episodes, and books that catch my interest during the week and that I found interesting.
It's a mix of the actuality and what I consumed.
You think you may have interesting content, share it!
Installing Docker Desktop for Windows and WSL 2 (Andrew Lock) - This post guides ys in the installations of WLS2 with Docker on Windows. It is now kind of simple... But a lot of us are still afraid. We shouldn't, give it a try!
Every Monday, I share my "reading notes". This is a curated list of all the articles, blog posts, and books that catch my interest during the week and that I found interesting. It's a mix of the actuality and what I consumed.
Épisode 11 - La famine en Ukraine (Les Pires Moments de l'Histoire) - OMG! I have nothing else to say. I knew that part of the history was dark and complex... but I knew nothing. Great episode.
Containers on Azure with Tom Kerkhove (.NET Rocks!) - What a great episode! And it's so true there is so many ways "to do your containers" ( like in a recipe )
Épisode 87 - La sécurité des coureuses (Grand écart) - Sometimes I feel so ashamed to be a man... I know I'm doing it right, but I need to do more... for the others that forgot that we are all equal.
633 - How to Use Rejection to Your Advantage (Modern Mentor) - In our lives, we will encounter many nos or rejection. This episode talks about how you could use those detours to learn more, and transform them in opportunities.
101: Windows Virtual Desktop with Travis Roberts (CloudSkills.fm) - I remember when "infra" people couldn't see anything positive about the cloud... Times as changed a lot. There are so many opportunities.
The myth of turning your hobby into a job with writer Aley Arion (Hanselminutes with Scott Hanselman) - Is it a myth or a reality? I totally think it's possible. But yeah in all the amazing love (or adventure) movies there are always some challenges. But happy 95% of the time.. I take that!
Every beginning weekend, I will share a recap of the week and at the same time a summary of my streams. Those videos are at least two hours longs, so I thought a short summary to know if the topic interest you could be useful. Watch only the summary or relax and enjoy the longer version that up to you!
Every beginning of weekend, I will share a recap of the week and at the same time a summary of my streams. Those videos are at least two hour longs, so I thought a short summary to know if topic interest you could be useful. Watch only the summary or relax and enjoy the longer version that up to you!
Coding Python: Deploy Django and Postgres Apps to Azure with VS Code - c5m.ca/aaa-ep25
Stream 119 - How easy can we make the deployment of TinyBlazorAdmin - c5m.ca/stream-ep119
Stream120 - Celebrating 500 followers and working on the Chat bot - c5m.ca/stream-ep120
Remote Debugging .NET Containers (Karol Deland) - A nice tutorial that explains clearly first the difference between remote and local debugging and then explains how to do it.
Screen Sharing with an Ultrawide Monitor (Kenny Lowe) - Really interesting post.As I think about getting a new screen and heard bad experiences sharing ultrawide screens this look like a nice solution.
An interesting book that shares the best practices about making videos today. How to plan, record, edit... What to do and not do. A quick, direct to the point and complete tutorial to get started. This book was done like today's videos.
Every Monday, I share my "reading notes". Those are the articles, blog posts, podcast episodes, and books that catch my interest during the week and that I found interesting.
It's a mix of the actuality and what I consumed. This week I was less in a reading mode...
Every Monday, I share my "reading notes". Those are the articles, blog posts, podcast episodes, and books that catch my interest during the week and that I found interesting. It's a mix of the actuality and what I consumed.
What are Azure CLI Extensions? (Michael Crump) - An interesting first article of a series. This one introduces us to the extension... Hmmm. I think I have an idea.
Azure DevOps Roadmap update for 2019 Q4 (Gloridel Morales) - Since the multi-stage pipeline launch in May, the team as been listening to his community. In this post learn more about what they have been working on and what is their roadmap.
Code Comments (Donn Felker) - Very smart idea! I'm staring using that rule right away.
Microservices Fundamentals (Mark Heath) - New course on Pluralsight about an indeed challenging topic. This post shares the plan of that Microservices course.
Stop Waiting! Start using Async and Await! (Simon Hawe) - Learn the power of async in this excellent post. The example may be in Python the idea is the same however language we are using.
What’s in my bag for Microsoft Ignite 2019 (Thomas Maurer) - As I'm packing my own bag, going to Ignite for the first time it's interesting to see what others bring... (Note to myself next time don't leave at home your network cable adapter)
I really like this book, and planning to read it again soon. I like the way things are simply explained. Like if you deconstructed a situation and then re-building it. It felt authentic and true. It's nothing transcending, but the way it is explained is great.
Presentation Tips for Technical Talks (Tanya Janca) - This post is filled with great and simple tips that will for sure improve the experience of your attendees and ours.
Nice book. There is always a good story to make a correlation with his current point. Then it could go in a different direction with another story. All the stories are complementary and are adding layer by layer to the more complex message that is delivered to us. Easy to read, enjoyable from the beginning until the last word.