RSSAmplifier

Blog

Shawn Cicoria Phd - CedarLogic, LLC

Recent content on Shawn Cicoria Phd - CedarLogic, LLC

cicoria.comRSS feed ↗273 posts

Latest posts

Metering the Agent: A Copilot CLI Canvas Extension for Token Usage and Tokenomics

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.

A Spaghetti Study Aid for Databricks and Spark That Somehow Became a Platform

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.

Tokens, Tools, Skills, and Context: The Real Challenge in Agent Development

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.

MLflow Learning Plan: Claude, Classic ML, GenAI, Local and Databricks

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.

Getting Back Up to Speed on Spark Shuffling

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.

Building a PostgreSQL LLM Extension with Rust Background Workers

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.

Running VS Code Agents in WSL Using WSLg

A workaround to run the new GitHub VS Code Agents app and the GitHub Copilot app natively inside WSL2 by leveraging WSLg and a simple shell function.

Resume

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…

Resume

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…

About this site

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…

Cookie Policy

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…

Privacy Policy

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…

Tokenomics: The Allocation of Scarce Resources in Agentic AI

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 Skeletal Streamlit App on Databricks: From Parquet to Approval Workflow

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.

CUDA on WSL2: How It Works, How to Set It Up, and a Rust TUI to Prove It

Nvidia cuda on wsl quick setup and benchmarks

Asteroids - 1980s version in Rust TUI

asteroids game in Rust TUI 1908s version

MacBook Neo 8GB: MPS/Metal Actually Works

MacBook Neo 8GB supports Metal/MPS and reasonable entry level performance for light loads.

Windows 11 AI Features -- 8 Gig of RAM -- what I don't need

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…

Hypervelocity Engineering (HVE) is Great -- But what About Scaling it?

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…

Fixing mise shims not working in VS Code on Ubuntu: avoid the Snap build

Fixing mise shims not working in VS Code on Ubuntu: avoid the Snap build

Getting Azure Defender Security Scores into JSON

getting json for azure defender scores

Getting PyTorch + ROCm Working on a Framework 13 (Ryzen AI 9) Using a Dev Container

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.

Windows 11 with Bypass

windows 11 TPM bypass methods

PXE with UEFI should be easy, right

UEFI PXE setup on Ubuntu simplified using scripts, TFTP, DHCP, NFS, HTTP, GRUB, Syslinux, resolving loader handoffs and configuration pitfalls.

Cleaning up Visual Studio Code Extensions

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.

Leveraging Azure Application Insights with OpenTelemetry: Distributed Tracing Done Right

Learn about migrating .NET applications to Azure’s OpenTelemetry-based Application Insights for seamless distributed tracing, simplified observability, and minimal code impact.

Copy a Hyper-V VM with - "The key protector could not be unwrapped. Details are included in the HostGuardianService-Client event log"

take a look at this Hyper-V 2016 Shielded Virtual Machines on Stand-Alone Hosts (altaro.com)

Is your team healthy?

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?

Azure Stream Analytics Updating a Job using a GitHub Action to stop and start

Effortlessly deploy Azure Stream Analytics jobs with my TypeScript-based GitHub Action and Azure CLI.

Git Git Submodules vs. Git Subtree

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.

Using regular expressions in Azure Application Gateway Rewrite Rules - extract Certificate Common Name

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,…

IP Address and Subnetting CIDR Helpful Tools - ipcalc cli

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:…

Using BlobOutput and EventHubTrigger bindings with System Properties in Java Azure Functions

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…

Scala Using with OpenTelemetry Span to automatically end the Span Block

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…

Parse Log output from Hadoop Yarn MapReduce DFSIO Benchmark Utility to CSV Files

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…

Generate OpenTelemetry Compliant TraceParent TraceContext Headers using Bash

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…

Expanding Ubuntu Disk Image

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…

Converting Azure EventHub Capture AVRO to JSON Lines (JSONL)

quickly convert lots of avro files to json using eventhub capture files

Spring Initializer from the Command Line - Tighten the Developer Loop

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…

Loading .env (dotenv) using bash or zsh

Keep Cloud Native and follow 12 Factor Apps with dotenv even in Shell Bash Zsh scripts

Get the weather at a command line interface CLI - curl

the weather is just a command line call away from any terminal - curl wttr.in

Easily capture web hook messages in storage with hierarchical structure

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…

DotNet Core Building Docker SDK Missing.

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 |…

Google Chrome Software Reporter Tool CPU High

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…

Jupyter Lab Build Failures under Wsl shutil.Error [Errno 13] Permission denied

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…

Azure DevOps PowerShell Tasks Fail with NativeCommandError RemoteException

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: -…

Using vcvars64 vcvars.bat from PowerShell and Azure Devops

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…

Jupyter Notebook auto launch browser from WSL

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…

ssh annoyance -- strict mode and known_hosts cleanup

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…

Error: Manually created ServicePrincipalToken does not contain secret material to retrieve a new access token

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…