Hacker Newsnew | past | comments | ask | show | jobs | submit | vilos1611's commentslogin

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.


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!


nice! i dont know what to use it for yet myself but this is actually pretty awesome


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.


I don't see average Joes vibe coding apps that before took a small startup, I see a lot of cheap talk around that idea, but no receipts ... I see some incredibly simple chrome extensions and the such out there, with their api keys hard coded in their client side code lol


My perception is that this guy's response to "I forgot to write a readme" was "I should limit myself to tools that do it for me" instead of instilling discipline about documentation.


"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"

hahaha this is a miniscule amount of people.

most people do not care about their job, only to the extent it is a source of income. but they do not care about it anything more than that. and they shouldnt either!

you live in delululand.


This matches my experience as a statistician who used to begrudgingly write bad code when I had to. LLMs have opened up huge new possibilities for me.

No doubt there's some Gell-Mann amnesia going on, because I regularly have to correct them from doing stuff that's really dumb based on my expertise within my area of specialization. More than once I've managed to extract >3 orders of magnitude performance gains after asking them to justify why their code was so slow. Probably there's still some stupid stuff in there. But it's better than the code I would have written, and I never could have paid for a proper developer to write it.


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.


If the loop is so big it's scrollable, sure use row, col, etc.

That was my "vast majority" qualifier.

For most short or medium sized loops, though, renaming "i" to something "meaningful" can harm readability. And I don't buy the defensive programming argument that you should do it anyway because the loop "might grow bigger someday". If it does, you can consider updating the names then. It's not hard -- they're hyper local variables.


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.


If you see grid[y][z][x], is it a bug or a deliberate transposition?


It seems like Twitter made a tool to specifically do this, not just an altruistic individual.


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


hmm, maybe HN related problems? Application error: a client-side exception has occurred (see the browser console for more information), some nextJS issue, so maybe server side?


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.


If anyone would like a docker image, I created one today: https://hub.docker.com/r/greglinscheid/polynote https://github.com/Vilos92/polynote


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: