Author Archives: smittytone

Unknown's avatar

About smittytone

Tech Author and Writer

How to intercept STDOUT and STDERR output in Swift CLI code

My open source images-to-PDF utility, pdfmaker, makes use of Apple’s PDFKit. While this partnership works as it should, just one aspect bothered me: PDFKit warnings and errors don’t bubble up to the calling code, but are piped via STDERR. The upshot: anyone running pdfmaker may see messages that it hasn’t issued. pdfmaker is a CLI tool, but I can’t just redirect the output to /dev/null — you’d lose everything, not just PDFKit’s grumbles. Instead I had to figure out how to sink PDFKit’s output even though it wasn’t coming via pdfmaker. Here’s how I did the pipework.

Steel pope (c) 2024, Tony Smith. All rights reserved.
Continue reading →

Review: Pimoroni Pico Plus 2 👍

I managed to grab one of the first batch of these early — paid for with good money; not a ‘select few’ freebie — rather than the more obvious Raspberry Pi Pico 2. I’m pleased to say my choice was justified. This is a very good developer-centric RP2350-based board.

Pimoroni Pico Plus 2
The Pimoroni Pico Plus 2
Continue reading →

Xcode 15.3 zaps Swift packages: here’s how you fix it

I have cd "${PROJECT_DIR}" ; agvtool bump set as a script in a number of my macOS projects’ Xcode schemas’ Build phases. The second of the two commands auto-increments the project build number on completion of the build. It continues to do so, but with Xcode 15.3* there’s a side-effect: it deletes the project’s Swift packages.

Xcode and Swift icons
Icons owned by Apple
Continue reading →

Thank you! 🙏

I’d like to acknowledge the following readers of this blog — or users of my software — who’ve expressed their appreciation of my work by tipping me via PayPal (see the column to the right).

  • Richard H
  • Matthew S
  • James H T

Thanks very much, folks — your recognition is much appreciated.

Go program the Raspberry Pi Pico… with Go

I have been working with Go professionally, building a cross-platform CLI tool. I’m rather enjoying the language, so I wondered if I could use it to program the Raspberry Pi RP2040 too. A little Googling revealed TinyGo, an implementation of the language for microcontrollers.

Continue reading →

MNU gains user-defined keyboard shortcuts

MNU is a tool I use every time I work on my computer. It’s a menu bar utility that allows me to trigger command line scripts and tools with a couple of mouse clicks. Despite its utility to me, I haven’t given it any love for some time, so I recently remedied that with a spring clean of the code. I also added a new feature: custom keyboard shortcuts.

Continue reading →

Depot gets Arduino Nano RP2040 Connect support

A quick update on my Depot project: an RP2040-based host that provides Mac and Linux machines mediated access to external sensors, displays, actuators and other peripherals: version 1.2.2 extends board support to the Arduino Nano RP2040 Connect, and there’s better board selection too.

Depot running on the Arduino Nano RP2040 Connect
Depot running on the Arduino Nano RP2040 Connect
Continue reading →

Review: DFRobot Pico Gravity Board 👍🏻

I keep an eye out for Raspberry Pi Pico add-ons that make prototyping easier and do so inexpensively. DFRobot’s Pico Gravity Board is one such. It breaks out a stack of RP2040 GPIOs and buses to make it more straightforward to hook up displays, sensors and such.

The DFRobot Gravity Board in action
The DFRobot Gravity board with Pico H in action
Continue reading →

Meet Depot, an RP2040-based multi-bus adaptor for Macs and Linux PCs

I’d like to introduce you to Depot, the new name for an expanded version of the Raspberry Pi RP2040-based adaptor I launched last year as cli2c. Why the name change? In addition to I²C, the firmware and the client-side code that interacts with it, now supports 1-Wire, and more buses will be supported soon.

Depot client and adaptor firmware in action
Depot client and adaptor firmware in action
Continue reading →

Tailscale: a VPN for the rest of us? You bet!

A one-time colleague of mine recently put me onto Tailscale, a rather nifty product that allows you to wrangle all of your computers, phones and more into a single, secure and Internet-spanning virtual private network (VPN). I decided to give it a try and I’m very impressed with its performance and ease-of-use — the latter very important for someone like me who’s not a network guru.

Tailscale: VPN for the rest of us?
Continue reading →