Blog

How I build software

I've been doing it since 2008 and sharing my work since 2020. Here I show you what works and how I get there, step by step.

2026

13 posts
Vertex Descriptors in Apple Metal: Attributes, Offsets and Indexed Drawing Oct 2026Use MTLVertexDescriptor so your Swift and Metal vertex structs don't have to match, calculate attribute offsets the right way with MemoryLayout.offset(of:), and draw a square from four vertices with an index buffer. Your First Triangle in Apple Metal: Shaders and Vertex Buffers Oct 2026Draw a triangle with Apple Metal in a Swift playground: write the vertex and fragment shaders, build the render pipeline, send vertices with setVertexBytes or an MTLBuffer, and get the memory alignment right. Your Business Deserves a Native App Oct 2026Many of your team's apps are web pages in disguise, and you pay for it in waiting. When Shopify rebuilt its shopping app as native, it started opening twice as fast on Android. Here's what native could do for your business. XFCE on 4K Displays: Correct Scaling in Five Settings Oct 2026XFCE's Window Scaling option only scales GTK apps. Here are the five settings that make a 4K display look right in GTK, Qt, Firefox and Emacs, plus fractional scaling. A GNOME-Style Terminal That Opens in 35 ms, Without GTK Sep 2026GNOME Console took half a second to open, and so did an empty GTK window. So I kept the foot terminal's engine and drew the GNOME look by hand: new windows in 35 ms. DeepSeek V4.1 Flash Is Cheap, If You Do the Thinking Sep 2026Same app, same model, two results. DeepSeek V4.1 Flash cost as much as V4 Pro with a short prompt, and $0.17 with a detailed spec. I Built a YouTube Shorts Clipper for $0.65 Sep 2026Cheap AI models replace paid services. I built a $0.65 YouTube Shorts clipper that turns long videos into vertical, captioned Shorts. I Gave DeepSeek V4 Pro Vision Aug 2026DeepSeek V4 Pro only takes text. I gave it vision through a small Flash model in Gritcode, so the agent can see the UIs of the apps it builds. I Built a Lightroom Alternative for $0.40 with AI Aug 2026Adobe Lightroom doesn't run on Linux, and the free alternatives are clunky. So I built my own photo editor with AI, for about $0.40 in tokens. Why I Created Gritcode — An AI Coding IDE That Costs Pennies, Not Hundreds Jul 2026Cheap tokens, cheap laptops, and the end of the CS gatekeeping era. Hardware H.264 Decoding on Fedora 43 and 44 — The Fresh-Install Recipe Apr 2026Fedora ships codec-free out of the box. Here's the fix to get hardware-accelerated H.264 / H.265 decoding back on a fresh Fedora 43 or 44 install. Displaying 100K Rows Without Lag: wxListCtrl Virtual Mode Mar 2026How to display large datasets in wxWidgets without lag using wxListCtrl in virtual mode. Complete working example with 100K+ rows. wxWidgets: The Friendly Gateway to Linux Desktop Development Feb 2026Compare GTK, gtkmm, and wxWidgets for Linux desktop development. Code examples, event handling patterns, and cross-platform considerations in C++.

2025

2 posts
Writing a Markdown Editor in C++ with wxWidgets and cmark May 2025Build a live Markdown editor in C++ with wxWidgets and cmark. Real-time preview, link handling, and cross-platform support in under 100 lines. Introduction to Textures in Modern OpenGL May 2025Load and map textures in modern OpenGL with C++. Covers texture coordinates, vertex attributes, shaders, and stb_image setup step by step.

2024

3 posts
wxWidgets with CMake FetchContent Feb 2024Simplify your wxWidgets build with CMake FetchContent. Learn to automatically download, build, and link dependencies in a single CMakeLists.txt. Exploring Apple's Metal Framework: A Beginner's Guide Jan 2024Get started with Apple's Metal framework in a Swift playground. Create the device with MTLCreateSystemDefaultDevice, set up an MTKView and render your first frame. Grid Sizers in wxWidgets: Basics to Advanced Jan 2024Explore the implementation of simple Grid Sizers and Flex Grid Sizers in wxWidgets with practical examples of a checkerboard pattern and a signup form.

2023

1 post
How to use Built-in Dialogs in wxWidgets May 2023Learn how to use built-in dialogs in wxWidgets to create native-looking dialog windows without the need for system-specific code.

2022

3 posts
GDK Pixbuf error when running a wxWidgets app on Linux Dec 2022Fix the GDK Pixbuf 'Could not load a pixbuf from icon theme' error when running wxWidgets apps on Linux. Quick diagnosis and solution. Handling Clipboard Operations in wxWidgets Text Controls Dec 2022Implement cut, copy, and paste in wxWidgets text controls. Handle clipboard operations correctly across Linux, macOS, and Windows with wxTextCtrl. Box Sizers in wxWidgets: Layout Fundamentals Dec 2022Learn wxWidgets layout fundamentals with box sizers. Step-by-step examples of proportional sizing, alignment flags, and nested sizer patterns in C++.

2020

1 post
wxWidgets + CMake: Multiplatform Superbuild Oct 2020Build cross-platform C++ apps with wxWidgets and CMake. This tutorial automates dependency management using ExternalProject on Windows, Linux, and macOS.

Browse by topic: all tags