programming Articles


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 …

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 …

Fastlane + Jenkins Pipelines (Gaige gets his Java on)

Jenkins For years, I've been using Jenkins as a CI environment at ClueTrust. For those unfamiliar with Jenkins, it's a long-running open-source project built in Java for doing Continuous Integration. It'll work on just about any platform that can run Java (although it's most at home on Unix machines) and …

Codesigning ate my Sunday

I have a version of Cartographica that I need to push out before the end of the year, due to a certificate expiration on one of my long-term servers. As a bulwark against problems occurring just at the turn of the year and to make sure that users can use …

Verb-first AppleScript commands

This is a note for those of us who might run into this problem. When working on some changes for Cartographica, I ran into some difficulty when using a verb-first command that could take either a list of one type of user-defined object or another type of user-defined object. The …

Apple replaces ADC with Mac Developer Program

Wow! Apple certainly wants more people to sign up as Mac developers, that's for sure. In changes made today, the ADC Premier and Select tiers have disappeared and they have been replaced with Mac Developer through the current developer portal (which has the iPhone developer sign-up as well). Mac and …