I built a GitHub Copilot CLI canvas extension that tracks token usage, AI units, and estimated cost per session — with an editable rate card. Here’s how it works, the constraints that shaped it, and where it’s headed: automated rate pulls and EMU-vs-public pricing.
I set out to write a few study notes for a Databricks interview and ended up with a four-part study platform: a notes vault, dual-track PySpark notebooks, a git-tracked HTML lesson runner, and a Copilot SDK chat app that answers questions grounded in the repo itself. Here is how the pieces fit, and where the spaghetti lives.
Feeding an agent the right context is the same problem we have always had with human developers; we just never solved it cleanly. Here is how to think about it.
A runnable MLflow sandbox covering classic ML and GenAI, identical code locally and on Databricks. Plan, notebooks, scripts, and tooling all scaffolded with Anthropic Claude in an afternoon.
An interview question about Spark shuffling sent me back to basics after five years away. I built a runnable Databricks demo covering shuffles, joins, skew, AQE, and Photon — here’s what I relearned and what’s changed.
A walkthrough of pg_llm_bgw, a PostgreSQL 18 extension written in Rust with pgrx that exposes a SQL-callable llm_ask() function, proxying prompts to OpenAI, Azure OpenAI, or Anthropic through a static background worker and shared memory.
Shawn P Cicoria United States | LinkedIn | www.cicoria.com | GitHub Summary Hands-on Technical Lead driven towards action and sense of urgency towards prioritized delivery targets; resolve issues, move forward. Bias to action. Results-oriented engineering project teams across Retail, Automotive, Financial Services, eCommerce, and Manufacturing. Startups and large enterprises. Results-oriented lead…
Shawn P Cicoria United States | LinkedIn | www.cicoria.com | GitHub Summary Hands-on Technical Lead driven towards action and sense of urgency towards prioritized delivery targets; resolve issues, move forward. Bias to action. Results-oriented engineering project teams across Retail, Automotive, Financial Services, eCommerce, and Manufacturing. Startups and large enterprises. Results-oriented lead…
View my full resume Shawn Cicoria has been a Forward Deployed Engineer (FDE) for the past decade at Microsoft and a Principal Engineering leader in Microsoft’s Industry/Commercial Software Engineering group, where he focuses on generative AI, distributed systems along with cloud, data, and AI/ML solutions. He has authored many books and technical posts for Microsoft’s ISE Developer…
This Cookie Policy explains how cicoria.com uses cookies and similar technologies when you visit the site. It complements the Privacy Policy . What are cookies? Cookies are small text files that a website stores in your browser. They are widely used to make websites work, to remember preferences, and to measure usage. Similar technologies include local storage, session storage, and pixel tags. In…
This site, cicoria.com , is a personal technology blog operated by Shawn Cicoria. The opinions expressed here are my own and do not represent those of my employer or any affiliated organization. This page explains what information is collected when you visit, how it is used, and the choices you have. Information collected This site does not require you to register, log in, or submit personal…
Economics is the allocation of scarce resources. Tokens are becoming that scarce resource. As GenAI subsidies disappear and agentic workflows explode consumption, developers need to start thinking like economists.
A walkthrough of a skeletal Streamlit application running on Databricks Apps — covering its Makefile-driven setup, dual-auth strategy, layered data architecture with volumes, tables, materialized views, and SQL views, and the flexibility to run locally or deploy to the platform with a single command.
AI features using over 8 Gig of RAM What’s happening: WorkloadsSessionHost.exe can spawn multiple background “workload” processes that support newer AI/semantic features , and it often respawns after you end it in Task Manager. Source: Microsoft Q&A thread on high CPU/RAM usage ( Microsoft Learn ) First, disable the triggers (lowest risk): Turn off Windows features that commonly drive these…
The traversal of easily generating or fixing a “program” is OK – but orchestrating at higher levels is still way beyond the tools – Not to forget about the “enterprise” stuff. The evolution of AI in the context of Software Development is just following many other industrial growth patterns. The humans still need to understand the big picture – and it’s been big all…
Getting PyTorch with ROCm running on a Framework 13 with Ryzen AI 9 was surprisingly fragile, so I moved everything into an AMD ROCm PyTorch devcontainer and used HSA_OVERRIDE_GFX_VERSION=11.0.0 to finally make the integrated Radeon GPU usable for local experiments.
Cleaning up Visual Studio Code Extensions with a simple script. From my experience it helps to keep the Default profile empty as possible. And set the setting “for new windows use default” – or whatever that setting is.
Learn about migrating .NET applications to Azure’s OpenTelemetry-based Application Insights for seamless distributed tracing, simplified observability, and minimal code impact.
Start with the basics… Do people know what they need to work on? Do they know how it will all fit together? Do they know what success looks like? Do they know the tech needed to do it? Do I (as the SM/team lead/whatever) know the above as well?
Integrate external Git repositories using Git submodules or subtree. This guide covers the steps for both methods and compares their features. Simplify your development workflow and maintain modular codebases by choosing the best approach for your needs, enhancing code reusability and efficiency.
Microsoft Azure’s Application Gateway is a platform service that can offload capabilities, so you don’t have to code them for yourself. With proxy software, one capability is the ability to rewrite aspects of the HTTP request – Server, Request, and Response variables. Another feature is Application Gateway is support for certificate authentication or mTLS ( mutual TLS ). In this model,…
How often are you subnetting, or just trying to get valid sets of CIDR (classless inter-domain routing) addresses? For that there are a bunch of online tools, but the one tool I prefer is the ipcalc command line tool. The Linux man page is here: ipcalc man | Linux Command Library It’s also available on macOS using Homebrew via brew install ipcalc – and there is an online-version here:…
One of the nice developer features of Azure Functions is the Bindings that provide pre-baked code and logic to help manage events inbound or sending things outbound However, much of the documentation is centered around C# and I found it difficult to find any clear Java examples that use EventHub and Blob output. So, after bunch of debugging and spelunking, I created a simple Azure Function in Java…
Past couple of years, I’ve been spending quite a bit of time with OpenTelemetry (OTEL). As always, always looking for shortcuts in code. One of the things that is always just annoying is that span.end( ) just doesn’t mesh well with “close” or “release” etc. all the time. So, things like try-resource and Scala’s Using won’t understand it without some…
Recently I’ve been spending my time running lots of dfsio benchmark jobs. The DFSIO utility is part of the Hadoop distribution and can be found in jars located in ./hadoop/share/mapred – the JARS have a name like "hadoop-mapreduce-client-jobclient-*-tests.jar . Output from the tool is a column order which is readable in single runs. However, I’ve been running these in a loop with…
For the past year or so I’ve been working with Observability and quite a bit of Open Telemetry. One of the requirements of triggering a great front-to-back trace is providing a W3C compliant header in the Open Telemetry format. That format detailed in W3C Trance Context . Very simply in bash, we were able to use the following, which when we lit up for example Application Insights in Azure, a…
I don’t know how many times I have to look this up, but if I’m ever in Iceland, gotta personally thank Turn off the VM. Use Hyper-V Manager to select the Settings of the Virtual Machine, select the Hard Drive option and Edit under Virtual hard disk. (If this option is disabled, you need to go back and delete any checkpoints for the VM in the Hyper-V Manager; just select the VM and…
For the past year I’ve had my head buried in Spring Boot for Java, and now Kotlin. A developer approach that I’ve always followed is that before introducing novel approaches, patterns, recipes, etc. is to implement a bare bones skeleton project first. This is essential to get that “clean room” validation that can prove assumptions, crush them if necessary. But most…
Recently I was working with Particle.io which provides several integration types. One of which is a basic HTTP Webhook. In need of a basic ability to capture each device message that is published across the webhook, we initially thought that we had to spin up a basic HTTP application, then write the binding code for persisting to an Azure Storage Account. We could’ve used Azure Functions and…
If you see this /src/docker-compose.dcproj : error MSB4236: The SDK 'Microsoft.Docker.Sdk' specified could not be found. Or something similar, you can update the base image to the following. Docker Hub Look at the Tags and what’s in the Dockerfile First update your project… ci-build_1 |…
Anyone else has this software reporter tool and High CPU? First, I don’t like the fact there’s nothing in Chrome settings to disable this. Secondly, why is it so poorly written for Windows that it slams the CPU? To disable, as there is a policy: via cmd line in an Adminstrator Elevated session: reg add hklm\SOFTWARE\Policies\Google\Chrome /v ChromeCleanupEnabled /t REG_DWORD /d 0 reg…
If you’re seeing the following running under wsl in Windows it’s not a Linux permission, it’s a Windows permission issue. Easiest route it to elevate in Windows, move to wsl environment, the run your rebuild. I hate these errors 11:02 $ jupyter lab build --dev-build=False --minimize=False [LabBuildApp] JupyterLab 1.2.11 [LabBuildApp] Building in…
If you run into the error mentioned with the Hosted Build Agents on Windows - I’ve seen this with the Windows-2019 images – and you’re truly not using PowerShell remoting - a simple switch to the PowerShell core version of the task works - pwsh CategoryInfo : NotSpecified: (:String) [], RemoteException FullyQualifiedErrorId : NativeCommandError So, the following steps: -…
UPDATE: 2020-05-8 – non-hard-coded paths!! Added step for using vswhere .. Recently in order to build Curl, I needed to just simply use the Native x64 command prompt and just nmake - unfortunately, that’s not so direct. So, the following is a PowerShell inline script that runs this on the build box, and this works on Azure Cloud Hosted too. Thanks to…
If you’re running Windows 10 with WSL, built out a Python virtual environment, then running the command to launch the Notebook server - you’re probably seeing this. No web browser found: could not locate runnable browser Wsl Utilities Thankfully, there’s a tool that can help bridge opening the Browser onWindows from the WSL shell - you can install WslUtilities from here You have…
Often when using DNS names behind dynamic IP addresses the IP address might change. But the default for ssh is to ensure that the IP address still matches – well, kinda annoying but “proper”. You can clean a host using ssh-keygen as below: ssh-keygen -f '/home/cicorias/.ssh/known_hosts' -R 'scicoriahdicluster-ssh.azurehdinsight.net' Windows or PowerShell - ssh-keygen -f…
When a long-running Terraform on Azure deployment is happening (or an apply ) the token used by Terraform is NOT being refreshed during the operation. Error message Error: Error waiting for creation of HDInsight Hadoop Cluster 'mycluster' (Resource Group 'my-cluster'): azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to…