programming Articles


Poetry in Production

I regularly use poetry in order to isolate development environments as I'm putting applications together. I've been happy with it, and there are a number of methods that I've developed for using poetry in various environments. For production, there are a number of different mechanisms used by people in the …

Renovating git tags

I've been very happy using Renovate (the free version) for use on my personal projects. I've previously discussed running it on one of my k8s clusters. Today, I was trying to deal with a very specific problem: I needed to track a dependency via git tags, instead of tracking the …

Poetry in GitLab

This weekend, I had occasion to build a new python-based utility and leaned in to my existing poetry tooling in order to do so. While starting the new project, I wanted to take advantage of some gitlab automation I'd previously used on other projects, so I figured I'd document it …

Subtasks and Redirection

Background As part of an ongoing effort to keep Cartographica up to date with recent changes in libraries that we compile from source, notably GDAL and Proj, I'm in the midst of a refresh of those subtrees in the frameworks that I build from them. Over the past few years …

fp-concat Accuracy

My previous post about proj floating point investigation discussed an issue that I'd tracked down to the OS level. However, it's clear that this relates to an underlying change to code compiled by Xcode (and/or the LLVM toolchain that it is built upon). Based on a post about Xcode …

xcodes for xcode switching

As part of digging through my various problems with Xcode 14.3 (Feedback FB12154691, FB12154887, and some test case issues involving floating point math), I needed to install Xcode 14.2 to move my buildfarm backwards. Although this didn't enitrely fix the problem, it was an essential element of the …

Proj Floating Point Error Investigation

TL;DR MacOS 13.3 or 13.3.1 incorporated a change that is affecting calculations in proj for applications running on those versions of the OS. The change appears to be relatviely subtle, only affecting a single test in a single projection and only on x86_64, not arm, but …

Moving Selenium tests in-house

Ed. Note: I started this article nearly a year ago, but got stuck on the Kubernetes piece. Now that I've resolved that, I'm publishing it. I've been a very happy user of SauceLabs for testing for many years. However, I don't make a lot of use of it, and recently …

Renovating GitLab Repos

Over the past week, I've been working on getting my various dependencies up to date in my GitLab instance repositories. The tool I'm using is Mend Renovate, an open-source solution by the folks at Mend (formerly WhiteSource). Let me state up front that I don't love the license here, it's …

Test without building and SPM

Another day, another set of testing issues. As mentioned in my previous post, Slathering Xcode Variants, I've been making some use of Xcode's capability to build a test package and separately run that test package on a different machine, possibly with a different version of macOS or even a different …

Slathering Xcode variants

I've been doing quite a bit of experimentation with recent features in Xcode lately, especially as regards trying to efficiently run my GitLab-powered Mac Mini build farm. Recently, as I've been doing some work on CartoMobile, I've been updating the testing code there and stole some ideas from the Cartographica …

GitLab stuck MR

MRs (Merge Requests) in GitLab are similar to PRs (Pull Requests) in GitHub, although the process and language around them are slightly different. The name specifically refers the the request to merge into another branch from a branch (or repository) that isn't the same. Simple enough. Most of the time …

Pelican plugin updates

One of the advantages of our recent pivot to gitlab is that I'm spending some time looking at existing repositories and doing some updates. Most of my repos are private and hosted on our private gitlab server. For public code, I generally place it on GitHub. With the recent automation …

pre-commit and Pelican

Putting pre-commit to use I mentioned in a previous post about pre-commit, a tool for maintaining code consistency through simple management of pre-commit checks. The first place I decided to give this a whirl was on my blog sites. As you may be aware, I moved my blog sites (both …

pre-commit

Introducing pre-commit hooks I recently became aware of the open-source project: pre-commit, which is "A framework for managing and maintaining multi-language pre-commit hooks." The key feature of pre-commit is that it creates an execution environment for itself in order to enable running hooks without messing with (or creating conflicts with …

XCTest + CoreData = ouch

I put this up in hopes that somebody runs across it more quickly than I did... This weekend, as a "break", I decided to do some work updating an ancient (2003-vintage) piece of code that I wrote when I was doing extensive blogging. I'm not certain it'll ever leave my …

gitignore as a service

When you're looking to quickly create an appropriate .gitignore file for a new repository, you can save yourself some time, and possibly aggravation, by using gitignore.io. Available as either a website with a very simple interface (and completion), or as a simple API-based service documentation for the API and …

Git subtrees for Perforce users

For many years, I was a happy Perforce user. Despite clearly not fitting their precise model, I had a three-user license which allowed me and my bots to appropriately work on my code base. I have a number of pretty complex projects, which often have overlapping code and I took …

XCUITests and macOS

A number of years ago, I set out to automate a set of manual tests that we've been using for years to validate functionality and UI in Cartographica. I've been through a lot of technologies over the years, some expensive commercial tools, some open source technologies. I won't go through …

Dynamic XCTests

For a number of years, Cartographica has had a lot of tests-on the order of 1500+, but a few of them are quite a bit bigger than they should have been, owing mostly to their data-driven nature. This post describes the method used to provide dynamic test creation for Cartographica …