HNHacker News
TopNewBestAskShowJobs

vinnymac

787 karma · joined December 5, 2012

submissionscomments
vinnymac··on The Theatre of Pull Requests and Code Review
Yep!

Adding context to both your commits and your code review tools pull requests / merge requests makes everyone's lives better. Including future you, who inevitably is looking at the PR or commit in the future due to an incident caused by said change.

I have been following this personal rule for well over a decade, and have never regretted it.

vinnymac··on The Theatre of Pull Requests and Code Review
For any PR above a few line change, if a developer has not done a self review, I don’t review it all.

Instead I request that it is self reviewed with context added, prior to requesting re-review.

I also tend to ask the question, “are any of these insights worth adding as comments directly to the code?”

9/10 the context they wrote down should be well thought out comments in the code itself. People are incredibly lazy sometimes, even unintentionally so. We need better lint tools to help the monkey brain perform better. I wish git platforms offered more UX friendly ways to force this kind of compliance. You can kind of fake it with CI/CD but that’s not good enough imo.

vinnymac··on What happens when coding agents stop feeling like dialup?
I am also surprised by this. Especially because we can just run Claude Code from anywhere. Cursor, VS Code, Zed, emacs, vim, JetBrains, etc.

Cursor CLI, Codex and Gemini work too, but lag slightly behind in a variety of different ways that matter.

And if you think you’re getting better visual feedback through Cursor it’s likely you’re just not using Claude with your IDE correctly.

vinnymac··on Node 20 will be deprecated on GitHub Actions runners
Same for Vercel which doesn’t support 24 officially yet.

https://vercel.com/docs/functions/runtimes/node-js/node-js-v...

vinnymac··on Shai-Hulud malware attack: Tinycolor and over 40 NPM packages compromised
Most don’t need it. There was a time when most post installing flooded your terminal with annoying messages to upgrade, donate, say hi.

Modern node package managers such as yarn and pnpm allow you to prevent post installs entirely.

Today most of the time you need to make an exception for a package is when a module requires native compilation or download of a pre-built binary. This has become rare though.

vinnymac··on What to do with an old iPad
And yet it must be Jailbroken, and is not an iPad.
vinnymac··on What to do with an old iPad
There are plenty of successful mods and even paid products capable of making a MacBook include a functional touchscreen.

As far as I know the closest thing you can do with an iPad running macOS is some form of Remote Desktop / VNC. The QEMU attempts on jailbroken iPads are unusable, and impractical. Certainly no one has done it natively (outside of Apple of course)

vinnymac··on Using Claude Code SDK to reduce E2E test time
Agreed, this is just bad engineering. I hope we don’t see more ideas like this bleed into actual release processes.

Outside of a fun project to tinker on and see the results, I wouldn’t use this for anything that runs in production. It is better to use an LLM to assist you in building better static analysis tools, than it is to use the proposed technique in the article.

vinnymac··on Atlassian is acquiring The Browser Company
I find Atlassian to be a strange buyer of The Browser Company and there products. I don’t see the philosophical match here.

Does Atlassian want them to become an Enterprise AI arm?

vinnymac··on Say Bye with JavaScript Beacon
Not OP. It’s mostly used for tracking user behavior, and is rarely critical functionality for a given web page.
vinnymac··on macOS dotfiles should not go in –/Library/Application Support
I want this, but also a LuLu firewall style permissions prompt to accept or decline writes to my ~
vinnymac··on Code review can be better
Just signed up, looks like everything I ever wanted
vinnymac··on AGENTS.md – Open format for guiding coding agents
.config is a good name, and has a small following

https://dot-config.github.io

vinnymac··on Why I'm all-in on Zen Browser
I did almost the same thing about 9 months ago. I am rooting for Zen despite currently maining with Firefox.

I have to have all the browsers and nightlies installed anyways, so I might as well personalize it to work best for my needs.

I imagine not everyone is like us, and something like Zen being zero config is a big deal.

vinnymac··on Show HN: Fallinorg - Offline Mac app that organizes files by meaning
Have you considered offering a Command-Line version as well? I would use something like this if it wasn't just an app and worked on Linux.

Would be neat if it studied your existing organizational patterns and tried to fit any changes to match it.

vinnymac··on Modern Node.js Patterns
To be fair, I do this when writing shell scripts by hand. But if it’s built in, why would I?
vinnymac··on Modern Node.js Patterns
Promise.all() itself doesn't inherently cause unhandledRejection events. Any rejected promise that is left unhandled will throw an unhandledRejection, allSettled just collects all rejections, as well as fulfillments for you. There are still legitimate use cases for Promise.all, as there are ones for Promise.allSettled, Promise.race, Promise.any, etc. They each serve a different need.

Try it for yourself:

> node

> Promise.all([Promise.reject()])

> Promise.reject()

> Promise.allSettled([Promise.reject()])

Promise.allSettled never results in an unhandledRejection, because it never rejects under any circumstance.

vinnymac··on Modern Node.js Patterns
You no longer need to install chalk or picocolors either, you can now style text yourself:

`const { styleText } = require('node:util');`

Docs: https://nodejs.org/api/util.html#utilstyletextformat-text-op...

vinnymac··on Modern Node.js Patterns
If you haven't tried vitest I highly recommend giving it a go. It is compatible with `jest-extended` and most of the jest matcher libraries out there.
vinnymac··on Modern Node.js Patterns
Currently for very small projects I use the built in NodeJS test tooling.

But for larger and more complex projects, I tend to use Vitest these days. At 40MBs down, and most of the dependency weight falling to Vite (33MBs and something I likely already have installed directly), it's not too heavy of a dependency.

vinnymac··on Modern Node.js Patterns
If anyone is curious how they are measuring these are the benchmarks: https://github.com/nodejs/undici/blob/main/benchmarks/benchm...

I did some testing on an M3 Max Macbook Pro a couple of weeks ago. I compared the local server benchmark they have against a benchmark over the network. Undici appeared to perform best for local purposes, but Axios had better performance over the network.

I am not sure why that was exactly, but I have been using Undici with great success for the last year and a half regardless. It is certainly production ready, but often requires some thought about your use case if you're trying to squeeze out every drop of performance, as is usual.

vinnymac··on Modern Node.js Patterns
Undici in particular is very exciting as a built-in request library, https://undici.nodejs.org
vinnymac··on The Dollar Is Dead
I don’t disagree.

I usually pipe Substack to markdown and then just open it in my favorite markdown reader.

https://www.substacktools.com/downloader

vinnymac··on MacBook Pro Insomnia
Nice, I might consider forking yours to only do this if the lid is closed, as I leave my laptop open but locked doing things all the time at my desk.

> ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState | head -1

vinnymac··on Vanilla JavaScript support for Tailwind Plus
There are devs who think the currently available HTML elements are all we needed. But there are many more that believe we are missing primitives that Tailwind (and others) is attempting to solve for.

> It’s just a collection of themes and pre-built components

All reusable web components could be described as an optionally themed pre-built component. That's kind of the point.

vinnymac··on Tell HN: I Lost Joy of Programming
I don’t think you’re doing anything wrong. Some shops just have very low quality bars where they can ship things that are to be frank, broken. I tend to use Sonnet 4 these days, and use it for tasks that aren’t too important or ones that require prototyping and iteration over perfection.

I find it’s really great for augmenting specific kinds of concentrated tasks. But just like you, I have to review everything it creates. Even Claude Opus 4 on MAX produces many bugs on a regular basis that I fix before merging in a change. I don’t mind it though, as I can choose to use it on the most annoying areas, and leave the ones I enjoy to work on myself.

vinnymac··on Epanet-JS
Surprised how well this worked on my 8 year old phone despite mobile support being in preview, very well done.
vinnymac··on Learnings from building AI agents
I’ve been testing this for the last few months, and it is now much quieter than before, and even more useful.
vinnymac··on Show HN: I made an app that lets you save audio to your Cameral Roll
iOS has a file browser called Files.

I believe this is an attempt at trying to level up the Voice Memos feature which has been neglected compared to other OS features.

vinnymac··on The Zed Debugger Is Here
It’s funny you mention this because I have an issue with Cursor where if I leave it open for more than a few hours my M3 Max starts to melt, the fans spin up, and it turns out to be using most of my CPU when it should be idling.

Zed on the other hand works perfectly fine for me. Goes to show how a slightly different stack can completely change one’s experiences with a tool.

← PreviousPage 3 of 10Next →