spelunking swift package manager – Workspaces

I finished up my last bug fix and tackled another. SR-4261 took me deep into some new areas of the code base that I wasn’t familiar with. I did more spelunking to have a decent clue of what the code was doing before making the fix. The results of the spelunking are this post. Many of the recent changes toContinue reading “spelunking swift package manager – Workspaces”

Using 3 Tiers of Continuous Integration

A bit over a year ago, I wrote out Six rules for setting up continuous integration, which received a fair bit of attention. One of the items I called out was the speed of tests, suggesting to keep it to around 15-20 minutes to encourage and promote developer velocity. A few weeks ago, the team at SemaphoreCI usedContinue reading “Using 3 Tiers of Continuous Integration”

Adding thread safety in Swift 3

One of the pieces that I’ve brushed up against recently, but didn’t understand in any great depth, were techniques for making various sections of code thread-safe. There are some excellent articles out there on it, so if you’re looking and found this, let me provide a few references: In Jun 2016 Matt Gallagher wrote Mutexes andContinue reading “Adding thread safety in Swift 3”

spelunking Swift Package Manager

In the slowly building sequence of my swift dev diaries, I wrote about how to set up a swift development environment, and noted some details I gleaned from the SwiftPM slack channel about how to make a swift 3.0/3.1 binary “portable”. This likely will not be an issue in another year, as the plans for SwiftPMContinue reading “spelunking Swift Package Manager”

HOW TO: making a portable binary with swift

Over the weekend I was working with Vapor, trying it out and learning a bit about the libraries. Vapor leverages a library called LibreSSL to provide TLS to web services, so when you compile the project, you get a binary and a dynamic library that it uses. The interesting part here is that if you move the directoryContinue reading “HOW TO: making a portable binary with swift”

Kubernetes community crucible

I’ve been watching and lurking on the edges of the Kubernetes community for this past cycle of development. We are closing on the feature freezes for the 1.6 release, and it is fascinating to watch the community evolve. These next several upcoming releases are a crucible for Kubernetes as a project and community. They have moved from GoogleContinue reading “Kubernetes community crucible”

Benchmarking etcd 3.0 – an excellent example of how to benchmark a service

Last week, the CoreOS team posted a benchmark review of etcd 3.0 on their blog. Gyo-Ho Lee was the author, and clearly the primary committer to the effort – and he did an amazing job. First and foremost is that the benchmark is entirely open, clear, and reproducible. All the code for this effort isContinue reading “Benchmarking etcd 3.0 – an excellent example of how to benchmark a service”