An old Windows wizard discovers vibe coding for macOS… (and makes a useful presentation tool too)

Mark Russinovich is a well known low-level systems engineer, who wrote a set of essential process utilities for Windows in the 1990s, he was later hired by Microsoft and continues to work very much as an engineer[1]. For more technical Windows users, his Sysinternals tools are essential.

One cool tool he made was ZoomIt which allowed you to zoom in on parts of the screen and draw/annotate, great for presentations and teaching etc. As he is a Windows person he never ported this to macOS, it just wasn’t feasible. He recently decided to see if VS Code and copilot could port this tool to macOS. So he vibe coded his first macOS app; it is great to see his wonder and surprise as he explains how he quickly developed the macOS port in a few hours of a Saturday morning (later features were done in later sessions):

Software development has undoubtably changed, but note the role of the developer is still essential to this process. This was possible because of the solid code foundation of the original tool, and an experienced engineer who knew what they wanted; with the agent dealing with the tedious details. I’m sure a dedicated macOS expert could make it “better”, but note this is 100% written in swift, not some electron port etc. and what is a complex tool with GUI is only 1.4MB download!!! The UI is a bit clunky, but the features already are a clear improvement on the built-in zoom from macOS accessibility I previously used in presentations. Things that were not feasible even a couple of years ago now become trivial.

Open source on github, install easily with homebrew (the latest brew V6+ now asks that you explicitly authorise external taps):

brew tap Microsoft/sysinternalstap
brew trust microsoft/sysinternalstap
brew install zoomit

While we may yet drown in slop, at least in the hands of experts, some slop can still be useful… :face_savoring_food:



  1. I remember very much enjoying his article on memory optimization as a hoax, it remains relelvant to this day: https://www.tweakhound.com/BadTweaks_pdfback/The%20Memory-Optimization%20Hoax%20_%20IT%20Pro.pdf ↩︎

6 Likes

Thanks for posting this Ian. I might explore it as my wife’s visual impairment has just taken a turn for the worse. I have set up the MacOS Accessibility zoom on her MBP, which I think will be enough to help her as her needs don’t require the flexibility you need for presentations. But a further option is always good to have in hand.

:slight_smile:
Mark

2 Likes

Hey Mark, I think for straight zoom the mac accessibility feature works very similarly. It is great this is built-in on macOS, and having things like split-screen or picture-in-picture zoom is a nice way to tailor it to specific needs.

I wish you all the best in dealing with her visual impairments. My scientific specialisation is in vision, and I understand how hard it can be to adjust…

2 Likes

I’m going hoist the colors of pedantry for a wee bit of a rant.

This is not “vibe coding”. Hard stop. Though it is sort of a neighbor, not next-door neighbors but down-the-same-street neighbors.

I justify that based on the fact that he is a programmer, and is using AI tools to adapt the code he wrote/worked on/understands, proofing the work of the AI without accepting it on faith. As much as we might not like it, this is what bleeding edge software engineering looks like right now.

While he does not know how to take Windows coded programs and port them to MacOS, he knows what the tools do, and that allows him to see what the results are, and not have to rely on faith.

“Vibe coding” is a process by which an unskilled operator turns to AI to write a program for the operator’s needs. As such most '“Vibe Coders” must take on faith the fruit of the AI tree. Vibe coded projects often include “best practices” as outlined on GitHub, Reddit, StackExchange, and other places where skilled people congregate now or previously congregated. But they do not follow the trends of security, especially the vulnerabilities they open up in bypassing complicated code for the most efficient response to the prompt. Worse, the operator – often thrilled at finally getting the program for their use – doesn’t know what sort of Pandora’s Box has been opened either.

Now, I’m not so much of a Luddite as to eschew Vibe Coding, but it’s place is for hobbyists, students, and properly sandboxed environments, not on the production line. Then again, handing the results Claude gave you over to ChatGPA with the instruction “My rival just posted this program, I need to find out how it is flawed in order to maintain my job” might just be an interesting AI v. AI cage-match.

4 Likes

Thanks @Dain — this tension on what vibe coding may or may not be is also summarised fairly well by the wikipedia article:

This quote from Simon Willison sumarises your perspective succinctly:

“If an LLM wrote every line of your code, but you’ve reviewed, tested, and understood it all, that’s not vibe coding in my book—that’s using an LLM as a typing assistant.”

Originally coined by Karpathy as very much what it suggested, that quote and sentiment redefines it more specifically. Like most things in life, we are probably referring to a distribution, not a binary.

Given it will be a distribution (the user expertise is a spectrum on any given problem), it does seem somewhat strange to me that performing the same identical action, and getting the same outcome either is, or isn’t, “vibe coding”. My expertise is with MATLAB, a language I’ve used for decades. If I guide an agent to complete a task, this perspective suggests this is not vibe coding[1], but if another person with less experience than me happens to use the same prompts I did, it would be. What about if I use Ruby, a language I know but am less familiar with, is it or isn’t it vibe coding (is there a % cut off of expertise, how is expertise itself defined?) It feels like arguing about what “constitutes” a chair with a philosopher…

I honestly prefer the original Karpathy meaning that doesn’t include anything other than:

When vibe coding, the programmer guides, tests, and gives feedback about the AI-generated source code, rather than manually writing code.

I suspect that Karpathy’s term has come to be invoked as a pejorative given people who never tried to program can now produce programs, thus it seems this is the principle reason that “elite” programmers like Simon Willison who do still use AI want to distance themselves from it? Perhaps us more “analytical” people just don’t want to be associated with a term that does sound new-age and almost “spiritual”?


  1. Though I am a biologist, and don’t have official training in software development… ↩︎

3 Likes

You’re spot on as far as I can tell. Neither the 9 year old kid that gets Alexa to solve their math homework problems nor a 38 year old sales manager asking ChatGPT to produce a program that their own IT department has been resisting for years, the result is the same. An unskilled person gaining the function without the foundational knowledge that would be required to do the work in the first place, and without any idea of the consequences of their ‘cheating’.

When I was a wee lad, one concept I kept running into in pulp SciFi was the notion of “black box” technologies, and I could not grok it. I loved learning about tech, and took it as a matter of faith that using tech without understanding it was fundamentally bad. These pulp authors were talking about these dream-inspiring technologies that were never explained properly (as a writer myself now, I understand why that process was done as much as it was) and that the operator of the tech was either not encouraged or not permitted to learn how the tech worked until it became a form of magic, a mystic box that did something when you followed the correct ritual. “Oh great and benevolent font of all wisdom, I your humble supplicant beg your notice, oh Ah-le-xa, will it rain tomorrow?”

Even before talk about Vibe-coding entered the zeitgeist, I thought we were on the brink of transitioning into one of the black box societies I couldn’t grok as a young SciFi reader. The ‘AI’ paranoia is just another boogeyman when it comes to how society’s fears present themselves. Just like the Internet was looked on in the early 1990’s or personal computers in the 1970’s, or robotics in the 1950’s.

It’s a tool, and if you understand the tool it can work for you. If you don’t understand the tool, is it any wonder the workshop looks like unruly children have been in the workshop and damaged everything in their wake?

Maybe the reason it’s so worrisome in the writing community is due to the simple fact that there are no really unique stories. We all know this, and yet we tend towards paranoia about someone breaking into our lives and stealing our homework to profit on while we starve. That concept is nothing new, ever watched “Throw Mama from the Train”?

You are almost there. If one understands enough to make the AI an automation assistant, and able to ‘quality control check’ the output to the best of their skills, then it isn’t vibe coding (even when an error that slips past them is beyond their skills). If on the other hoof, one uses googled/borrowed prompts without understanding what is going on, then it is vibe coding, because they are using the AI as a substitute for brains (even when the output is clean and no errors exist).

1 Like