Recent submissions

Comment · 16 days ago
Yeah that's definitely pretty fishy.
Comment · 17 days ago
We evaluated the Decisions API at work and it was worse in all dimensions (price, speed, and quality of the result).
Comment · 22 days ago
We've tested the decisions API against Jev at work and it's worse in various dimensions. Costs more, higher error rates, slower, and the answers are worse.

A lot of people are shouting about how Jev hasn't actually differentiated itself, but I question how much folks are actually experimenting with what's out there before coming up with an opinion.

For us, it's cleae that OpenAI rushed this out to meet the hype in the market right now without having a product that actually meets the bar Jev has set.

Comment · 2 months ago
I've explicitly included instructions in my home CLAUDE.md to avoid this, because it's one of the most annoying things about how Claude writes comments.

I've also written my own package for deterministically formatting comments: https://www.npmjs.com/package/comment-fmt

Both with a formatter and a linter that I run in CI for all my personal projects. Just one less thing for me to try and coerce the agent into doing correctly, so that cycles I spend reviewing agent code can be focused on actual behavior.

Comment · 3 months ago
I'm currently building a game (https://nebulaser.io) that runs in the browser, and wanted to add some icons to the game that accurately resemble the 3D model I am using for the player's ship.

I wanted something that could make either a flat or "cel-shaded" SVG from the original 3D file. Additionally, I wanted to be able to manually pose the model before taking a "snapshot".

Looking into this, I found some options but a few themes emerged. They either:

- Produced massive SVGs with bloated path counts.

- Required installing desktop software (Blender pipelines, local utilities, etc.).

- Were hidden behind paywalls or SaaS subscriptions.

So, I built a 3D to SVG tool. Everything runs entirely client-side in the browser, and I don't plan on monetizing it (it's a fairly niche need after all).

Some notes on how it works:

- Three.js is used for the 3D arcball and to pre-simplify dense meshes via grid vertex welding.

- All geometry calculations and the SVG path generation is handled on a Web Worker, so the main UI thread stays snappy when rendering a new pose.

- Uses 2D polygon unions to merge mesh triangles into clean silhouettes, sealing hairline gaps between "cel-shaded" regions. The output size is reduced with Douglas-Peucker path simplification.

- Outputs minimal markup using currentColor so the exported icon can be directly recolored via CSS. You can copy/paste the output or download an SVG.

Hopefully it can benefit someone else!

Comment · 3 months ago
It's pretty easy to generalize this, but it doesn't match my perception. People who are using llms to do things they could have already done, but faster, probably have atrophying skill sets. People who are using these tools to accomplish significantly more difficult or complex work than they used to are absolutely finding new ways to push themselves. The problems are just much bigger.

The average Joe can easily vibe code apps that took a small startup just a few years ago. If developers are also using AI to build the same simple apps - then yeah. They're not pushing themselves hard enough, and probably not using their brains as much anymore.

Comment · 10 months ago
In a single-level loop, i is just an offset. I agree that depending on the context (maybe even for the vast majority of for loops like you're suggesting) it's probably fine.

But once you nest three deep (as in the example that kicked off this thread), you're defining a coordinate space. Even in a 10-line block, i, j, k forces the reader to manually map those letters back to their axes. If I see grid[j][i][k], is that a bug or a deliberate transposition? I shouldn't have to look at the for clause to find out.

Comment · 10 months ago
I respectfully disagree.

The issue isn't the names themselves, it's the locality of information. In a 3-deep nested loop, i, j, k forces the reader to maintain a mental stack trace of the entire block. If I have to scroll up to the for clause to remember which dimension k refers to, the abstraction has failed.

Meaningful names like row, col, cell transform structural boilerplate into self-documenting logic. ijk may be standard in math-heavy code, but in most production code bases, optimizing for a 'low-context' reader is not an anti-pattern.

Comment · 4 years ago
It seems like Twitter made a tool to specifically do this, not just an altruistic individual.
Comment · 4 years ago
I've been using twin.macro on a side-project of mine, and have really enjoyed it: https://github.com/ben-rogerson/twin.macro

I especially like how easy it is to fall back onto ordinary Styled Components if I'm trying to implement things more specific than what tailwind can handle.

Here's a sample of what I've implemented with twin.macro: https://grueplan.com

Comment · 4 years ago
https://grueplan.com/ - I recently finished an initial version of a social event planning app. Idea is to have an alternative from Facebook events to quickly:

- Create

- Share

- Collaborate

On group plans. I eventually want to add in simple commenting + note taking features, but for now you can register, create/edit plans, and share those plans with other people.

Comment · 7 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton