Programming is Not Rocket Science, Don't let AI Write Your Code (or Essays), Fight Back. If you must use AI, find provenance, and Attribute. GNU/Linux never loses relevance. AI makes it more powerful. C++ is Back.
Friday, 13 February 2026
Windows Baseline Security
The AI Agent Prevention Society
Wednesday, 11 February 2026
CloudFlare R2
Immutable Github Releases
Windows SDK
Ingress and Egress Fees
- Ingress fees are typically zero - allowing users to upload data to Amazon S3 or Azure Blob Storage with no additional charge.
- Egress fees are typically charged when data exits the cloud. These fees can differ significantly between providers and source and destination region.
Microsoft Store Policies
Microsoft Store (Windows Store) has policies on Product and Content, which developers must abide by.
There are a few rules around IAP - short for "in app purchases".
What is DXCore ... really?
The IARC and Windows Software
The IARC is the International Age Rating Coalition, a global initiative to streamline age ratings for games and applications. Over 19m games and apps have so far been published using IARC. Developers must abide by the IARC Terms of Use.
Tuesday, 10 February 2026
Uploading App Packages to the Windows Store
Windows Store Apps - Pricing
If you are a Windows Store developer, you have a few pricing options: Free, Freemium (optional in-app purchases, Subscription or Paid (one time payment).
Quick Guide to the GDK
Monday, 9 February 2026
Do Not Commit csproj.user file
What is Ready to Run (R2R) Compilation in Visual Studio?
Ready-to-run compilation is a feature in .NET that improves startup performance by compiling them in Ready-to-run format. This is a form of AOT (ahead-of-time) compilation that reduces work for the JIT compiler as the application loads. Your binary contains IL and precompiled IL. It only works if you target specific environments such as Linux x64 or Windows x64.
Rust uses C++
The Return of C++ Tools in Visual Studio
Today - C# programmers must embrace C++ development tools. There is No Alternative. C++ tools container the valuable link.exe to create standalone .exe files. Publishing .NET programs as standalone EXEs needing no runtime need this toolkit. Install it! Give up that 1.5 GB of space for some C++ tooling!
How Does GitHub Copilot Analyze Unexpected Behaviour
Suppose you have a release EXE file that has an unexpected dependency at runtime on a DLL. Github Copilot will analyze your project file (Csproj) for build settings and request permissions to view the build log output from your most recent build. It then makes recommendations (e.g. fill in a missing step in the build to remediate your problem).
Where did the .csproj file go in Visual Studio??
GitHub Copilot Integration in Visual Studio
Lift the Hood, Change the Oil
The Most Important Part of AI is Applications
..all the layer underneath is just infrastructure stuff (Jensen Huang, 2026).
How Users Can do Side-Loading
Here's a how to.
- Double-click the .msix or .msixbundle file
- Install via PowerShell: Add-AppxPackage
- Deploy and distribute internally
WinUI Blank App (Packaged)
This is project template for creating a WinUI app along with a MSIX package for side-loading or distribution via the Microsoft Store.
Side-loading in the above case refers to installing an app outside of the Microsoft Store, usually by providing the MSIX package to users.
A Closer Look at System.Drawing's Bitmap Class
Recover Solution Explorer
Enable Native AOT Publish
Native AOT (Ahead-of-time) deployment compiles your app to native code avoiding the need for a runtime. Compilation takes longer but the app runs faster, and with lower memory usage. Debugging may be more complicated relative to regular .NET applications.
The Solution Explorer project file contains the essential code required for this.
<PublishAot>true</PublishAot>
More details on AOT deployment here.
Top Level Statements (TLS) in .NET
Top level statements were introduced in .NET 9 as a way to avoid Main methods in .NET programs. This makes .NET programs look more like simple scripts.
STS versus LTS in .NET Versioning (STANDARD vs LONG)
STS and LTS have very specific meanings in .NET versioning. WinJoes must be truly on top of these different versioning schemes.
For example, WinJane may be faced with a choice to build a console app with .NET 8.0 (LTS) or .NET 9.0 (STS) and should understand the trade-offs between the two.
STS = Standard Term Support (NOT short term support, which might be seen as the natural counter to LTS).
STS releases have a shorter support window, faster iteration and more frequent updates. It is needed for developers needing newest features and ok with no multi-year stability guarantees. It is intended to keep the platform evolving quickly. Since .NET 5, STS releases have odd version numbers.
STS releases have a typical lifetime around 18 months, and LTS around 3 years.
Software teams have different strategies: 1) anchor on LTS for stability, 2) use STS to ride the innovation wave. Microsoft keep odd numbered versions as STS and even numbered as LTS.
Saturday, 7 February 2026
Keep up to Speed with C# Language Design Discussions
Thursday, 5 February 2026
Personal AI Assistants
Personal AI assistants are here, but security controls are askew. OpenClaw is an example of such an assistant. It acts as a bridge between messaging devices (such as WhatsApp, Telegram, iMessage) and AI agents. Ollama integrates with it.
Sunday, 1 February 2026
GGUF = GPT-Generated Unified Format
GGUF is a special model file format used to run LLMs efficiently on your own computer. It stands for GPT-Generated Unified Format. It is the successor to GGML. Privacy-sensitive workflows are one application of these optimized-for-local execution model packages.
Friday, 30 January 2026
Using ssh-keygen from WSL to generate an SSH key
Managed HSM as a secure key storage option in Azure
Azure Key Vault
Azure Key Vault can store keys (e.g. API keys) securely which can then be retrieved by applications at runtime. Passwords and certificates can also be stored in the vault.
Objects in the vault are uniquely identified by a case-insensitive identifier called the object identifier. It has a prefix identifying the key vault, object type, user-provided object name, and object version.
The key vault section starts with https://{vault-name}.vault.azure.net or https://{hsm-name}.managedhsm.azure.net, for Managed HSM Pools.
Object types are "keys", "secrets" or "certificates".
Object name must be unique within the key vault. Only digits, letters and dashes are allowed in the object name. The object name must be between 1-127 characters.
Thursday, 29 January 2026
OpenAI's Advice on Key Safety
OpenAI has a set of recommendations on key safety. There are basically two types of keys: API keys and admin keys (to check usage limits, quotas etc.). Read more on those recommendations here, also summarised below.
The first recommendation (rule) is do not share API keys. API keys are unique to users, even if those users are on the same team.
The second recommendation is that the OpenAI API key should not be exposed in client-side environments like browsers or mobile apps, which could allow malicious users to make requests as you.
Wednesday, 28 January 2026
Excel Data Validation Rules
Where to find data validation rules in Excel's ribbon?
Data -> Data Tools -> click on the drop-down with a green tick and a red no-entry sign, then select Data Validation.
You can choose to allow any values, or restrict values e.g. to a list.
Software as a Production Line
iex in PowerShell
How Claude Code Works
Programming Work and AI
irm in PowerShell
Claude Code
- Service may impose rate limits or usage quotas
- Output accuracy is disclaimed
- Output may be refused if it violates safety policy
Various Python Text UI Options
We have covered Textual in an earlier post. Some other frameworks to build text UIs in Python include:
Python Textual Framework
Blogger API and OAuth2
JDK Switcheroo for "Xamarin"
Your version of Visual Studio is no longer supported or serviced
Friday, 23 January 2026
Character format issues in emacs
Replit versus GitHub Codespaces
dataclasses in Python
What is Pydantic?
Tuesday, 13 January 2026
Deployment Toolkit (MDT) Support Removed - Try Windows Autopilot
Friday, 9 January 2026
What is SASE?
Tuesday, 6 January 2026
Analytics Libraries Expect Regularised Data
Monday, 5 January 2026
The list() constructor in Python
Testing Prediction Models - Out of Sample Testing
Python Internal Modules - The Underscore Convention
Python Debugger Survival Skills
ARIMA in Python: Endogenous versus Exogenous Variables
The ARIMA model in statsmodels is described here.
Its constructor has the following initial arguments: ARIMA( endog, exog=None, order=(0,0,0),....).
- endog - observed time series process, y
- exog - array of "exogenous regressors"
- order - (p, d, q) model for autoregressive, differences and moving average component
Sunday, 4 January 2026
Claude Code
Claude Code is built for developers - try it.
You can run it from a terminal (formerly only WSL).
Due to prompt injection risks, do not use it on codebases you do not trust.