software

Saying a lot while saying nothing at all about Ansible AWX

A few days ago, the post Upcoming Changes to the AWX Project came across my feed. An innocuous title, but sometimes community-impacting changes are buried in posts like this. So, as an interested Ansible user, I read through the post.

In 1,610 words, almost nothing of substance was written.

A lot about how it's not 2014 anymore, so 2014-era architecture doesn't suit AWX. Then a big bold disclaimer at the bottom:

Before we conclude, we should be clear about what will not happen.

  • We are not changing the Ansible project
  • We are not adjusting our OSS license structure

Ultimately, we need to make some changes to the way our systems work and our projects are structured. Not a rewrite but a refactoring and restructuring of how some of the core components connect and communicate with each other.

Transcribing recorded audio and video to text using Whisper AI on a Mac

2024 Update: I have a short video outlining my end-to-end process for subtitling all my videos on YouTube using Whisper/MacWhisper:

.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

Late last year, OpenAI announced Whisper, a new speech-to-text language model that is extremely accurate in translating many spoken languages into text. The whisper repository contains instructions for installation and use.

tl;dr:

Removing RF interference from a cell phone from audio recording

I made the mistake of putting my Wireless Go II mic transmitter in the same pocket as my iPhone for a recent video recording, and as a result, I had a lot of RF interference in the recorded track.

Thinking I could just use the nice feature of the Wireless Go II's built-in recording, I grabbed the track off the body pack itself—but found that it, too, had the RFI sound, meaning the iPhone's interference made it into the mic circuit itself, not just the wireless mic signal to my camera!

I tried Final Cut Pro's built-in voice isolation, and that helped mute the noise between speech, but during speech it was omnipresent.

I also tried accusonus' denoise plugin (RIP after accusonus was bought out by Meta), and it did better, but left the sound feeling 'watery'.

Why I haven't sold my $166 MRR SaaS product

Earlier today, I saw a post on Hacker News titled "I sold my side-project for $30k".

Besides the point that the sale price was $10k plus up to $20k dependent on the growth of the sold entity, some in the comments worried that the sale would result in users becoming unhappy with the way the service was managed by its new owners.

That's a valid concern, as most acquisitions change the direction of a product, sometimes making radical departures that bewilder the original set of users—users who are often the most invested in what used to be a smaller project.

I've been running Server Check.in for just under eight years. It has a little over 100 paid users, and 30 of those users signed up in the first year.

I don't spend much time on maintenance, and the service has a 30% margin due to very low hosting costs, but I mainly built it to be a radically different tool than all the Pingdoms and New Relics of the world.

The power curve

Besides being a software developer and photographer, I take a deep interest in spaceflight and love reading about the history and development of air- and spacecraft, with a special focus on early space program development.

A few books I've read in the past couple years have gone beyond being interesting just for their historic content—they gave me a lot of ideas to reflect on in relation to my approach to software development, especially what I'd term 'professional' software development (vs. hacking something together for fun, or churning out brochureware sites or cookie-cutter apps).

One book in particular, Failure is Not an Option (by Gene Kranz, director of Mission Control during NASA's early days into the Apollo era), illustrates high-performing teams operating well under pressure and with high stakes.

How can I get my PR merged into your open source project?

Recently I received an email from an IT student asking the following: I recently submitted a pull request to one of your open source projects on GitHub. What can I do to get this pull request merged? The answer below may sound somewhat like a cop-out, or harsh (especially considering it was to a starry-eyed student trying to dip his or her toes into the waters of open source software contribution)... but I've found that honesty is the best policy, and the best way I can maintain good OSS software is to guard my (limited) time for OSS work vigilantly, and try to not allow sentiment force the merge of any kind of code, no matter how simple/small the change. Here is my reply:

Thanks for the email! I maintain over 100 different open source projects on GitHub, all in my spare time (which can be hard to come by with 3 kids, a full time job at Acquia, and a few other hobbies!). I spend a few hours per quarter on any given project. Some of the more popular projects have dozens of issues, PRs, and new comments that need to be read through to figure out what I need to these few hours on.

Follow up questions to 'Don't drown in your open source project'

After I posted my presentation slides, transcript, and video from my presentation Don't drown in your open source project!, I received two follow-up questions (1, 2) on Twitter that I thought deserved a little better response than what I could do in 140 characters. So, here goes:

Do you ever abandon old projects? Thoughts on right/wrong ways?

Yes, in fact I've abandoned probably a dozen or so projects. The simplest examples:

Raspberry Pi Zero W as a headless time-lapse camera

tl;dr: There are many ways to capture time-lapse videos. But this one is cheap, completely wireless, and mine. If you want to skip the post and go straight for the glory, grab a copy of my Time-lapse app for the Raspberry Pi.

Time-lapses transform subtle, slow processes into something beautiful, and often make us think about things in new ways. For example, have you ever thought about just how heavy a wet snow is? The trees in your yard might know a thing or two about that! Check out a time-lapse I recorded this morning some mighty oak tree branches, as they relaxed upward as if in relief from the wet snow falling off:

I made the switch from Aperture to Photos

Aperture to Photos macOS Sierra upgrade and migrate library using iCloud

tl;dr: ~600 GB photo library, took ~3 weeks to migrate, some things are awesome (access to all my photos everywhere, on any device), some things less so (faces don't get synced, no loupe, no five-star rating system, no pro-level editing/batch workflows). All-in-all, I wish Apple didn't ditch Aperture... but it's not the end of the world moving to Photos.

There are many, many photographers who were disappointed Apple decided to discontinue Aperture development. Aperture was by far my favorite tool for both organizing and manipulating RAW photos taken with my DSLRs. It was fast, it had tons of great organizational features, and was highly adaptable.

The New Shiny

I recently read a very good interview with Jason Fried on The Great Discontent, and one of the answers towards the end of the interview struck me:

The other advice is to focus on one thing. I see a lot of entrepreneurs build something and then move onto the next thing and the next thing and the next. Building something is only step one. It’s not that hard to put something out there. Building on top of that to maintain and improve it is actually the harder thing to do. Anyone can release something, but it’s much harder to polish and refine it over time once it’s out there.

I admit I've been tempted by this same thing many times—trying out new idea after new idea, leaving the old to gather cobwebs in a closet. Lately I've been refocusing on some of my older, mildly successful projects, like my Hosted Apache Solr service and Server Check.in (they're not that old compared to other mature services, but they're old for me).