Nuphy Air75 v2 micro-review

After several years with a traditional full-height mechanical keyboard with clicky blue switches, I no longer want to annoy people in online meetings with the noise, and I missed the flatter profile of Apple’s keyboards. A brief perusal of popular recent reviews led me to the Nuphy Air75 V2 low-profile mechanical keyboard, with the “Moss” higher-spring-weight tactile switches. So far this is a big improvement for daily use. The feel is almost as nice but the sound is greatly reduced. It arrived already set up for Mac use, but with a handful of keycaps to swap out for PC use. It is VIA compatible, which I will use when I eventually get too annoyed with its incorrect layout of the rightmost column of keys. Overall, this is a great choice for a low profile mechanical keyboard at a middle price point.

Reposurgeon, for high fidelity source control system migration

The best time to blog about something is when it happens. The second best time is when you remember years later that you should have blogged about it. That’s now.

I’ve worked on complex source control system migrations, moving between various systems, most commonly SVN to Git. There are hundreds or thousands of tools and scripts around the Internet suggested for every plausible migration pair; almost all of which don’t even attempt to solve the whole problem.

The closest I seem to solving the whole problem is reposurgeon:

reposurgeon’s web page

reposurgeon source code on Gitlab

The strength of this tool is that it is intended to be scripted. Rather than doing a single-shot conversion, the workflow is:

  1. Attempt the conversion
  2. Study the results
  3. Tweak the conversion script (which can perform extensive and complex changes to the source code history on its way through)
  4. Repeat until approximately perfect

Teams using an old system continue doing so while the migration is worked on. Only once the migration has been perfected, is it time to cut over.

By scripting, I don’t mean that you, the user, must write scripts to do the basics of source control system history migration; that is the job of the tool. Rather, script to patch up the ugly bits of history in an old system during the translation. For example, in a moment of desperation, did somebody once merge a giant change to the mainline, something like rolling back the last three months of development, to try to get a deployable old build? That’s an easy bit of the old history to leave out during a reposurgeon-powered migration.

During migration you can translate usernames, branch names, details buried inside commit messages, and any other aspect you might wish to clean up programmatically. Think of it as a multi-source code system compatible analog of git-rewrite-branch, except for an entire repository, not a branch.

One major downside, as of the last time I used reposurgeon: it operates in memory, so you’ll need enough RAM for the whole source code history. This can typically be accommodated, even on quite large code bases, by temporarily allocating an extremely large compute instance on your cloud provider.

Microsoft Teams for online classes?

Where I work at Oasis Digital, we teach a mix numerous (mostly advanced, developer-oriented) workshop classes. Historically these were mostly in-person, since March 2020 they are all online for obvious reasons.

For online sessions we’ve used various meeting tools, including Zoom, Google Meet, Blue Jeans, and others I’ve forgotten. Sometimes a customer’s IT department has our default choice blocked, we are always on the lookout for alternatives.

Continue reading “Microsoft Teams for online classes?”

Design your content for effective video

This post is part of a series on demonstrating competence and expertise on video:

Your goal is results, not Minutes Watched

YouTube is full of videos that take 10+ minutes to deliver 30 seconds of information. Why? Because this content is on channels that make money by showing ads. They need each video to be at least 10 minutes, and more minutes watched means more ad revenue.

But that’s not the context I’m writing about. This post series is about demonstrating expertise and competence on video:

Continue reading “Design your content for effective video”

A small-scale, mostly-one-take video production process

This post is part of a series on demonstrating competence and expertise on video:

Create an outline

Outline your video in some detail, and make that outline visible (either on your screen, or printed on paper) during your video recording. Not too much detail, though; the outline shouldn’t take long, perhaps just a few minutes.

Then iterate on the outline, and get feedback from others if the video is important or if you are new to this kind of content. Rearranging text in an outline is tremendously easier than re-recording or video editing, so make the most of this stage.

Continue reading “A small-scale, mostly-one-take video production process”