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

Resurrecting old posts

Seemingly appropriate for the week after Easter, I've gone through some old draft posts and decided to publish them. A couple that were mostly ready and I decided to push out: Slathering Xcode Variants Test without building and SPM And one that I did a bunch of additional work and …

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 …

First look 2021 M1 MacBook Pro

I last bought a MacBook Pro from Apple in November of 2019, in the midst of a bout of travel that was about to come to an end. In point of fact, I haven't used my trusty MacBook Pro much in the last 19 months, since the COVID-19 pandemic started …

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 …

Always check your arguments

Quite a while back, RS wrote a comprehensive ansible role for handling Let's Encrypt certificate issuance and renewal. We both use this role extensively, which is why it was a significant issue when it suddenly started throwing type errors deep inside of the dnspython library during an nsupdate call in …

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 …

Developing on a 2019 Mac Pro

There's been a lot of discussion about the 2019 Mac Pro and various assertions that it's over-designed, overpriced, or underpowered. Since I decided to replace my venerable 2013 Mac Pro[1] with a 2019 Mac Pro, I figured I'd write up my experience with the device as a developer. The …