HNHacker News
TopNewBestAskShowJobs

mikemcquaid

4,359 karma · joined December 1, 2011

mikemcquaid.com
submissionscomments
mikemcquaid··on Show HN: Corgi, a helpful {agent, terminal} multiplexer
Run everything you don’t trust, particularly agents, in a non-admin user account under a sandbox. Check out sandvault for some great CLI for this.
mikemcquaid··on Deus Ex
Best game of all time.

I have the logo tattooed on myself (along with Babylon 5). First played it around 16 pre-spoiler-filled internet and was blown away by my friend and I having completely different outcomes to pivotal moments of the game related to Paul Denton (no spoilers: if you know, you know).

Never worked in games (bar a bit of voice acting in The Nameless Mod for Deus Ex) but I think were it not for that era of gaming I’d never have ended up working on Homebrew or at GitHub.

Sadly the graphics have not aged well but if you can handle them: the writing and non-linear/branching plot and dialogue is still probably second to none.

mikemcquaid··on Show HN: Corgi, a helpful {agent, terminal} multiplexer
Homebrew is heavily sandboxed and has been using the macOS sandbox for the best part of a decade, long before many other package managers did.

We also offer a .pkg installer and other installation options so curl | bash not needed for install that either.

mikemcquaid··on Vibe Coding Developer Productivity Tools
After digging in pretty hard to AI development tools, I couldn't find any that worked quite how I want. Instead: a native SwiftUI app to work exactly how I want (and a bonus calendar full-screen notification app).

`brew install agentide minmaxcal` if you want to try either out.

Happy to answer any questions here!

mikemcquaid··on Homebrew 7.0.0
Ultimately you don’t need to know much Ruby to maintain or contribute to Homebrew. Ruby makes it very easy to write custom DSLs that don’t feel like Ruby. I didn’t really know any before working on Homebrew and it’s now my primary language.

That said, yes we have already moved away from our DSL being Turing Complete. This release drops for official taps the ability for packages to run arbitrary postinstall/uninstall/etc. Ruby in favour of DSLs and our JSON API.

This will likely get extended over time to eventually allow package definitions to themselves be in JSON.

mikemcquaid··on Homebrew 7.0.0
We have a Landlock (formerly Bubblewrap) Linux sandbox due to an LLM. It sat unfixed on our roadmap for almost a decade. I and at least one other maintainer (as well as several LLMs) reviewed every line of code.

Homebrew has never been better performant, secure, tested, linted and typed. I understand the LLM dubiousness (I used to share it myself) but we’re the type of project where it’s very easy to get agents to do sensible end-to-end testing and review a nice language (Ruby). Just us on our outputs, not just our inputs.

One of our former maintainers was in high school when working on Homebrew. I’m sure many people would have found that worrying. His code was great, though (I reviewed most of it) and he made the project better. Same ultimately with LLMs. Your mileage may vary.

mikemcquaid··on Homebrew 7.0.0
Fixed and in 7.0.1.
mikemcquaid··on Homebrew 7.0.0
Yes. If/when it doesn’t: it’s a bug and we’ll fix it. We can’t fix things people don’t report. Also: this is open source: you also could choose to fix it. Unsurprisingly the Homebrew maintainers do not spend a lot of their time uninstalling Homebrew.
mikemcquaid··on Homebrew 7.0.0
An LLM helped with the initial tedium of rewording 1000s of PRs from maintainer centric language into user centric language. It was reviewed and edited (by a human) probably >20 times. Go look at the PR if you don’t believe me.

I used to do these all by hand and they took me multiple hours. I still probably spent over an hour, including a bunch of time on a family holiday today. Comments like this make me wonder why I bother sometimes.

mikemcquaid··on Homebrew 7.0.0
Linux Homebrew users would disagree.

Supporting macOS Intel has been significantly harder, slower and more expensive for us the last few years than adding ARM Linux support. If it was easy and free we’d have kept it for longer (until Apple and GitHub killed theirs at least which is coming in less than a year).

mikemcquaid··on Homebrew 7.0.0
For initial installation to the default prefix someone needs to create the home directory and that person is probably root.

We hope to allow all prefixes under 64 bytes in future.

mikemcquaid··on Homebrew 7.0.0
I didn’t build it. The emoji were my idea. I (and Homebrew) have used them heavily before LLMs did. Maybe LLMs loving them is my fault. Sorry if so.
mikemcquaid··on Homebrew 7.0.0
This is a bug, sorry. Working on it.
mikemcquaid··on Homebrew 7.0.0
Yup! We’ve been using it for a really long time at this point.

Were using Bubblewrap on Linux and moved to Landlock this release.

P.S. HUGE fan of your blog and writing Simon, keep up the great work. It’s the #1 resource I recommend to anyone in the industry wanting to learn more about LLMs (and pelicans).

mikemcquaid··on Homebrew 7.0.0
Can’t speak for others but a lot of my work. I review it all locally first. The flow feels a lot like reviewing human PRs locally.

https://github.com/MikeMcQuaid/AgentIDE

I actually wrote my own “Agent IDE” to make this prompt/review/push flow easier.

mikemcquaid··on Homebrew 7.0.0
You can’t, by design. We instead apply if for you on upstream packages from NPM, PyPi, etc.

Our model is very different to those where cooldowns exist and make sense. As-is if would just delay security updates too.

mikemcquaid··on Homebrew 7.0.0
Sorry we couldn’t support this for longer :(

From the release notes:

> The Intel support decision reflects the limits of a volunteer-run project: Apple have dropped Intel x86_64 support from macOS 27 Golden Gate and GitHub Actions will retire Intel macOS runners in autumn 2027. If Apple and Microsoft’s GitHub, two of the world’s largest technology companies, cannot continue supporting macOS Intel x86_64, sadly neither can Homebrew. MacPorts still supports macOS Intel x86_64 and is likely to provide better results on this platform.

mikemcquaid··on Homebrew 7.0.0
See the release notes: we now have experimental support for using any prefix shorter than the Linux default. We are aiming to eventually fully support (Tier 1) any prefix under 64 bytes long.
mikemcquaid··on Homebrew 7.0.0
I tried it. It ended up being slower on most non-synthetic benchmarks (like repeatedly installing the same thing with warm caches).

The lessons learned were instead used to make the Ruby frontend much faster.

mikemcquaid··on Homebrew 7.0.0
https://docs.brew.sh/Homebrew-Security-and-Supply-Chain

We take supply chain security very seriously, moreso than many package managers.

mikemcquaid··on Homebrew 7.0.0
Glad to hear it. A lot of time and energy has gone into performance work so glad that’s noticeable! Thanks for the kid words too <3
mikemcquaid··on Homebrew 7.0.0
Today, I’m proud to announce Homebrew 7.0.0. The most significant changes since 6.0.0 are faster installations and upgrades, stronger sandboxing, a native macOS app, built-in vulnerability checks and an advisory database, the end of macOS 10.15 support and Intel Macs moving to Tier 3 (announced last year).
mikemcquaid··on Please stop flooding our projects with AI slop to furnish your CV
As long as you have it disclose itself: feel free. We're not anti-AI use, we're just anti-low-effort AI use and don't see the need to apply effort to educate people who haven't applied the effort themselves.
mikemcquaid··on Please stop flooding our projects with AI slop to furnish your CV
We do similar in Homebrew by autoclosing opens without the issue template (which implies using the API which often now implies AI).

The weird flip side is that the average good AI contribution is better than the average “I used no AI” contribution. Perhaps it’s because Homebrew has so many declarative guardrails and is so easy for agents to test.

mikemcquaid··on U of Michigan drops first-semester grades to ‘curb mental health crisis’
Studying my 4 year BSc in Scotland: the first two years didn’t “count” to your overall grade and had more “required” modules/classes (e.g. maths for CS degrees).

This had pros and cons:

- it was nice to have a bit more of a gradual build

- this would probably avoid some of the issues here

- if you are lazy like me: you do bare minimum effort first and second year and then get crushed by both workload and lack of foundational knowledge in third year

- if you apply to a US company, some will want to see your “full transcript” and don’t accept “I was too busy playing CS (Counterstrike) to study CS (Computer Science)”

mikemcquaid··on Open Source Must Be Fun (Or It Will Die)
See, I do think everything like "recognition/impact" needs to come back at least in part to "fun" or it's not sustainable.

It's nice to think about how your work affects others!

It's important, though, to "put on your own oxygen mask first" :)

mikemcquaid··on Open Source Must Be Fun (Or It Will Die)
Solve problems you personally care about: “scratch your own itch”.

Alternatively, to go people-first: attend meetups or conferences related to a project or technology you’re interested in.

mikemcquaid··on Open Source Must Be Fun (Or It Will Die)
This has been on my mind for a while. Most OSS is done by volunteers, most volunteers need to enjoy it or it's unsustainable. "Sustainability" cannot be purely or primarily focused on money.

Thoughts?

mikemcquaid··on Git rebase -I is not that scary
Unsure, no longer there. I think maybe just “contact support”.
mikemcquaid··on Git rebase -i is not that scary
I’ve used Git for 20 years now and wrote a book about it.

The biggest mistake most sources make when teaching about history rewriting is omitting these two lessons first:

- it’s easy to lose uncommitted data in Git and hard to lose committed data

- given this, learn how to use ‘git reflog’ to see what you’ve done and how to undo/redo it (as this post recommends but, even then, a little too late)

If you just get in the habit of constant committing and checking reflog: you’ll never lose data.

(Related lesson from my 10 years employed by GitHub: they almost never do the git gc you’d expect to remove commits so once you push a commit: it’s likely there forever and identifiable by that same hash from anywhere in the fork network. This can be bad/scary so be aware).

Page 1 of 12Next →