MurphyA/hacker-news huggingface dataset:
Show HN: I built a dual-engine diagram app to fix my own workflow
by dongjiewu | 2025-12-09 11:31:39+00:00
Hey HN,

I built this tool because my personal diagramming workflow was broken, and I wanted to automate it.

When creating diagrams, I have two conflicting needs. For logic and structure, I prefer Mermaid.js here. It’s deterministic, version-controllable, and lets me tweak the logic easily until it matches exactly what’s in my head. For aesthetics, I need the final result to look like a high-end infographic for presentations, which Mermaid (and standard tools) are bad at. Before Nanobanana Pro came out, AI image generation cannot generate good visual presentation for diagrams because it always messed up with characters/texts. Now Nanobanana makes everything possible.

My Solution (The Workflow): I built an app that combines Mermaid and Nanobanana into a pipeline:

Step 1 (Draft): I use a lightweight LLM to generate Mermaid syntax. I can edit this code manually to refine the logic until the structure is perfect.

Step 2 (Render): Once the logic is locked, I pipe it into Gemini 3 Pro (Nano Banana).

Why this works: Unlike standard image generation, this workflow forces the AI to respect the "Logic Layer" from the Mermaid draft while applying the "Vision Layer" for aesthetics. It keeps the original information (text/nodes) accurate but renders it as a professional infographic.

The "Logic" mode is free forever. I charge credits for the "Vision" mode because the Gemini 3 API costs are significant.

Link: https://diagram-generator.com

Feedback on the text legibility in the rendered images would be appreciated!
by ChrisMarshallNY | 2025-12-09 11:31:49+00:00
Personally, I don’t like to use icons in menus. I do like them in tab bars and toolbars. I’ve learned (the hard way) to be sparing about using icons. Way back in the 1990s, I designed a scanner driver plugin that used an almost purely iconic interface. Looked great. At the time, I was gaga over Kai’s Power Tools[0].

Our customers hated it, and it was quickly taken behind the woodshed, and buried in a shallow grave in the desert.

Icons are really difficult.

Designing icons is really hard. They need to be immediately recognizable, when very small, and also, retain coherence, when made very large. They need to be recognizable, when displayed as transparent, monochrome templates, and they need to be culturally relevant.

In some cases, there may be legal ramifications for icon choices. For example, branding. I remember someone complaining about Apple rejecting their app submission, because they changed the tint of the Sign in with Apple button to match their color theme.

Selecting from a set (like SF Symbols) takes a lot of thought. I have to be careful not to use one that is already a common icon for something other than the feature I’m attaching it to. I often see apps that make weird choices.

One of the apps I wrote, uses a “long press to learn more” feature. If you long-press on almost any item in a screen, you get a haptic, and a small popover appears, displaying the accessibility label and hint. Works nicely. Ensures that I have good accessibility support, doesn’t interfere with other gestures, and also forces me to be thoughtful about accessibility text.

Kind of a pain to implement and maintain, though. I don’t do it in most of my apps.

[0] https://mprove.de/script/99/kai/2Software.html
by georgefrowny | 2025-12-09 11:32:11+00:00
> Its major advantage is that it automatically saves state, and the state saving is player-independent.

Yes, it's pretty mad if you think if what you would need to do to replace it.

Either you have a system with QR codes or simple ID chip to refer to some URL. Now you need a server, media licensing agreements and somewhere to store progress information, subscriptions, on and on. And the eternal temptation to abuse the data if it's in the cloud.

Or you store all the audio in the card, and now you need a memory chip and PCB in every card, plus some proprietary USB/WiFi/Bluetooth device to write the cards.

And the barely-makes-contact head system is genius too rather than sliding gold contacts. And it just has paper label inserts.

The only real down sides of cassettes other then the obvious physicality if you don't like that, is they integrate badly into modern cars, have a fairly short run length (and occasionally get chewed up). And if lots of need to be authored quickly, that's too bad!
by brainless | 2025-12-09 11:32:17+00:00
I prefer using LLM. But many people will ask what is an LLM and then I use AI and they get it. Unfortunate.

At the same time, LLMs are not a bullshit generator. They do not know the meaning of what they generate but the output is important to us. It is like saying a cooker knows the egg is being boiled. I care about the egg, cooker can do its job without knowing what an egg is. Still very valuable.

Totally agree with the platform approach. More models should be available to be run own own hardware. At least 3rd party cloud provider hardware. But Chinese models have dominated this now.

ChatGPT may not last long unless they figure out something, given the "code red" situation is already in their company.
by trj | 2025-12-09 11:32:52+00:00
I'm working on an embeddable mini VM (RISC-V rather than WASM) and am considering this. In my model, there's something akin to a hardware watchdog where the VM is considered hung if it executes too many instructions without calling a yield() function in the host, then there's the ability to set a maximum number of instructions to execute before returning to the caller.

This lets it be handled asynchronously at the pace the host code chooses https://github.com/ringtailsoftware/uvm32
by 72deluxe | 2025-12-09 11:32:56+00:00
I think the expectation of software quality in consumers has completely evaporated, and so people expect appallingly bad software and think it's normal. This isn't just the case for Microsoft - look at the baby-ification of macOS UI (let's make it like a children's iPad), any Google software offering (very poor performance) and the majority acceptance of web-browser-in-a-window-is-a-desktop-application software development. They accept things like Slack and Teams (awful software) but also put up with Skype getting worse in the decades before.

Office 2003 and prior were quite good, but then people think Google Docs is somehow equivalent to the functionality of Word.

Admittedly, Active Directory was afflicted by impossibly tiny windows for the management tabs, but the functionality worked (and you could write your own extensions to the LDAP tree and COM-based UI interface for them) as proven by the rehashing of part of the functionality into Google's "organisational" offerings (sign into Chrome and receive restrictions from your organisational (company) overlord, the new Group Policy).

It's a real pity. If we showed software today via a time machine to ourselves 25+ years ago, we'd be shocked at how slow and ineffectual it was and deeply distressed that this was the norm worldwide.
by redhale | 2025-12-09 11:34:42+00:00
Thanks for the link.

But my first thought looking at this is that the numbers are probably skewed due to distribution of user skill levels, and what types of users choose which tool.

My hypothesis is that Amp is chosen by people who are VERY highly skilled in agentic development. Meaning these are the people most likely to provide solid context, good prompts, etc. That means these same people would likely get the best results from ANY coding agent. This also tracks with Amp being so expensive -- users or companies are more likely to pay a premium if they can get the most from the tool.

Claude Code on the other hand is used by (I assume) a way larger population. So the percentage of low-skill users is likely to be much higher. Those users may still get value from the tool, but their success rate will be lower by some factor with ANY coding agent. And this issue (if my hypothesis is correct) is likely 10x as true for GitHub Copilot.

Therefore I don't know how much we should read into stats like the total PR merge success percentage, because it's hard to tell the degree of noise caused by this user skill distribution imbalance.

Still interesting to see the numbers though!
by donatj | 2025-12-09 11:35:07+00:00
I have been a developer for twenty years now. For me to trust code, my want is to understand every single line. I learned long ago working on projects with a team that that becomes impossible for a single person on large projects. I learned to trust that someone understands the code and between blames and Slack I can almost always hunt that person down.

More and more often, while doing code review, I find I will not understand something and I will ask, and the "author" will clearly have no idea what it is doing either.

I find it quite troubling how little actual human thought is going into things. The AIs context window is not nearly large enough to fully understand the entire scope of any decently sized applications ecosystem. It just takes small peaks at bits and makes decisions based on a tiny slice of the world.

It's a powerful tool and as such needs to be guided with care.
by Groxx | 2025-12-09 11:35:08+00:00
If it has all of:

a "big banner image", buttons that are required to interact or dismiss, doesn't go away on its own after only a couple seconds, and might(?) also exist in the notification center

I think it's pretty safe to label that "definitely not a toast". That's just a notification, or maybe a "non-modal alert". Toasts are distinct from those by being brief and ephemeral.
by IanCal | 2025-12-09 11:35:49+00:00
> I think it is fair to accept that other people trace the line somewhere else.

It's a pointless naming exercise, no better than me arguing that I'm going to stop calling it quicksort because sometimes it's not quick.

It's widely called this, it's exactly in line with how the field would use it. You can have your own definitions, it just makes talking to other people harder because you're refusing to accept what certain words mean to others - perhaps a fun problem given the overall complaint about LLMs not understanding the meaning of words.
by chickory3 | 2025-12-09 11:36:05+00:00
> I live in a dense European city and I don't know a single person who orders groceries online.

I live in the U.S. and have almost never used a service like Instacart. Also, when I see the item I’m trying to order in Amazon is fulfilled by Whole Foods, I typically don’t buy it, because of the additional cost.

I’d rather suffer a small amount of inconvenience to save several dollars on groceries, and often it may mean that I may need to order a different brand to pick up a similar item at a local store.

However, I’ll gladly pay a little additional money for Amazon for many other items, because it’s convenient, shipping is included in Prime, and because I can get what I want.

I make the majority of my retail purchases at a supermarket, followed by Amazon online (Prime only), then a very small percentage in-person at Target, Walmart, or a hardware/home supplies store or some random online retailer.

The best I can do to “shop local” is to use a supermarket chain; there is no mom-and-pop to support that isn’t a chain unless it’s a restaurant. I don’t pretend that this is actually “shopping locally”.

I’ve only participated in a boycott once or twice, because there is typically a practical reason for shopping when and where I do- either I need to shop then because I don’t get out much, or there’s a sale with actually lower prices, rather than the frequent “increase the price just to cut it to get you to order more” thing, which I also get sucked into, because I don’t have time to price shop, unless it’s with camelcamelcamel for Amazon.
by jamesbelchamber | 2025-12-09 11:36:06+00:00
This is very frustrating, but I'm not sure it's a problem only with classic JRPGs - recently I sat down to play Bayonetta 3 and it had a similar problem (along with.. others).

FF7 really had this nailed - flashy, mysterious cut-scene to first battle in, what, 3 minutes?
by woolion | 2025-12-09 11:36:53+00:00
I have most sympathy for the ideals of free software, but I don't think prominently displaying "What's bad about:", include ChatGPT, and not make a modicum of effort to sketch out a basic argument, is making any service to anyone. It's barely worth a tweet, which would excuse it as a random blurb of barely coherent thought spurred by the moment. There are a number of serious problems with LLMs; the very poor analogies with neurobiology and anthropomorphization do poison the public discourse to a point where most arguments don't even mean anything. The article itself present LLMs as bullshitters, which is clearly another anthropomorphization, so I don't see how this really addresses these problems.

Whats bad about: RMS Not making a decent argument make your position look unserious

The objection that is generally made to RMS is that he is 'radically' pro-freedom rather than be willing to compromise to get 'better results'. This is something that makes sense, and that he is a beacon for. It seems such argument weaken even this perspective.
by 72deluxe | 2025-12-09 11:37:14+00:00
I once worked at a company that wrote their UI in Delphi but then wrote their logic in C++ using boatloads of COM and MFC (for non-gui elements; the std library with containers was "new" at the time) so they ended up with 20 years of development baggage to talk to SQL Server over ODBC whilst implementing their logic on a repeated basis in C++ (COM loves you implementing interface functions you can't remove), calling from Delphi.

They were trying to port it to a "modern" system and modern compiler so had millions of lines of code to fix, and their UI was MFC-based (so another shot in the foot).

"Fun" times.
by vali128 | 2025-12-09 11:37:23+00:00
Hi HN! I built a dating app with two constraints: one like per day (no unlimited swiping) and video profiles instead of photos. The idea: unlimited swipes make everything disposable. One like per day forces intentionality. Videos show voice, mannerisms, energy – much more signal than curated photos. iOS-only for now. Still early and iterating. Happy to answer questions about the concept or technical decisions.
by ACCount37 | 2025-12-09 11:37:25+00:00
Oh, KiCAD's old UI was fucked. If you started on, like, KiCAD 4.0, then I can see why you bounced right off it. Today's UI is good, so I actually recommend starting on that over something like EasyEDA.

Footprints are a point in EasyEDA's favor, but in simple circuits, almost all footprints are universal. If you want a 10K+5% resistor, you just put in a 0402 (maybe larger if you're planning on hand soldering it) and pick the exact part afterwards.
by mort96 | 2025-12-09 11:38:02+00:00
Frankly, bullshit is the perfect term for it because ChatGPT doesn't know that it's wrong. A bullshit artist isn't someone whose primary goal is to lie. A bullshit artist is someone whose primary goal is to achieve something (a sale, impressing someone, appearing knowledgable, whatever) without regard for the truth. The act of bullshitting isn't the same as the act of lying. You can e.g bullshit your way through a conversation on a technical topic you know nothing about and be correct by happenstance.
by willvarfar | 2025-12-09 11:38:17+00:00
Are you saying that LLMs _do_ have a model of the human mind in their weights?

Imagine you use an ARIMA model to forecast demand for your business or the economy or whatever. It's easy to say it doesn't have a 'world model' in the sense that it doesn't predict things that are obvious only if you understand what the variables _mean_ implicitly. But in what way is it different from an LLM?

I think Stallman is in the same camp as Sutton https://www.dwarkesh.com/p/richard-sutton
by rvnx | 2025-12-09 11:38:34+00:00
Sadly to go beyond an exercise, having the money is really what you need if you actually want LLMs now, not time.

Nowadays training very powerful LLMs is easy because all the tooling, source-codes, training datasets, and teaching agents are available.

Getting access to dozens of millions of USD or more is not easy, and for big players this is a just drop in their ocean.
by netsharc | 2025-12-09 11:38:56+00:00
I think, like the Bill Gates haters who interpret him talking about reducing the rate of birth in Africa as wanting to kill Africans, you're interpreting it wrong.

The graph says horse ownership per person. People probably stopped buying horses, they let theirs retire (well, to be honest, probably also sent to the glue factory), and when they stopped buying new horses, horse breeding programs slowed down.
by vasco | 2025-12-09 11:39:06+00:00
Monochrome is a strange complaint, the text is also monochrome. Regarding what most people think I don't know, I'm definitely faster at spotting a specific pictogram in the start of a line than having to read multiple lower information-density pictograms (alphabet characters) in order (reading a full word or sentence). This seems obvious to me, 1 thing is faster to parse than multiple things.
by kakacik | 2025-12-09 11:40:38+00:00
Fine by me even in 2025. If you have a narrow use case that works for you great (and not actively and uncritically promoting it all over internet and HN like many others do).

Its a mistake to expect too much from it now though or treat it as some sort of financial cost-cutting panacea. And its a mistake being played right now by millions, spending trillions that may end up in financial crash when reality checks back that will make 2008 crisis look like a children's game.
by JanTurnherr | 2025-12-09 11:40:42+00:00
a little anecdote: i used gemini cli for a large implementation of a feature for a cpp api. gemini did a huge amount of work i otherwise had to write by myself. problem? in all this great work was somewhere a memory bug hidden. there was no error you just feed to the cli and call it a day. after 4 days debugging i found the bug. needless to say, gemini did not even once came close to where the bug was in the guessing game... will this change in the future? we will see...
Show HN: Avatune – SSR-friendly avatars with browser ML for attribute prediction
by teimurjan | 2025-12-09 11:40:46+00:00
Hi there,

We've built an avatar library that renders native SVG (not canvas), so it actually works with SSR frameworks.

I've trained some CNN models in Python on CelebA and FairFace to predict hair color, skin tone, etc. from photos, then converted them to TensorFlow.js. Models are ~2MB each, run entirely client-side.

Also ended up building Rsbuild plugins for SVG -> Svelte/Vue conversion because existing tools caused id/mask collisions when rendering multiple avatars.

https://avatune.dev https://github.com/avatune/avatune
by wongarsu | 2025-12-09 11:40:57+00:00
Though it's notable that sometimes this will produce "wrong" results because it centers on the geometric middle point of the box, while the correct thing is often more like bringing the center of gravity into the middle

I'm more of a fan of aligning to an edge anyways. But some designers love to get really deep into these kinds of things, often in ways they can't really articulate
by swatson741 | 2025-12-09 11:43:28+00:00
I never really considered this too deeply, because I've never studied "Agentic AI" before (except for natural language processing). Stallman is making a really good point. ChatGPT doesn't solve the intelligence problem. If ChatGPT was actually able to do that it would be able to make ChatGPT 2.0 on request.
by gwd | 2025-12-09 11:44:13+00:00
I think I'd define "classical" AI as any system where, rather that putting in an explicit algorithm, you give the computer a goal and have it "figure out" how to achieve that goal.

By that definition, SQL query planners, compiler optimizers, Google Maps routing algorithms, chess playing algorithms, and so on were all "AI". (In fact, I'm pretty sure SQLite's website refers to their query planner as an "AI" somewhere; by classical definitions this is correct.)

But does an SQL query planner "understand" databases? Does Stockfish "understand" chess? Does Google Maps "understand" roads? I doubt even most AI proponents would say "yes". The computer does the searching and evaluation, but the models and evaluation functions are developed by humans, and stripped down to their bare essentials.
by fooker | 2025-12-09 11:44:26+00:00
> ChatGPT cannot know or understand anything, so it is not intelligence. It does not know what its output means. It has no idea that words can mean anything.

This argument does a great job anthropomorphizing ChatGPT while trying to discredit it.

The part of this rant I agree with is "Doing your own computing via software running on someone else's server inherently trashes your computing freedom."

It's sad that these AI advancements are being largely made on software you can not easily run or develop on your own.
by 59nadir | 2025-12-09 11:45:08+00:00
> To the point where I recommend people who are dabbling in GPU work grab a Mac (Apple Silicon often required) since it's such a better learning and experimentation environment.

I don't know, buying a ridiculously overpriced computer with the least relevant OS on it just to debug graphics code written in an API not usable anywhere else doesn't seem like a good idea to me.

For anyone who seriously does want to get into this stuff, just go with Windows (or Linux if you're tired of what Microsoft is turning Windows into, you can still write Win32 applications and just use VK for your rendering, or even DX12 but have it be translated, but then you have to debug VK code while using DX12), learn DX12 or Vulkan, use RenderDoc to help you out. It's not nearly as difficult as people make it seem.

If you've got time you can learn OpenGL (4.6) with DSA to get a bit of perspective why people might feel the lower-level APIs are tedious, but if you just want to get into graphics programming just learn DX12/VK and move on. It's a lower-level endeavor and that'll help you out in the long run anyway since you've got more control, better validation, and the drivers have less of a say in how things happen (trust me, you don't want the driver vendors to decide how things happen, especially Intel).

P.S.: I like Metal as an API; I think it's the closest any modern API got to OpenGL while still being acceptable in other ways (I think it has pretty meh API validation, though). The problem is really that they never exported the API so it's useless on the actual relevant platforms for games and real interactive graphics experiences.
by vintermann | 2025-12-09 11:45:55+00:00
And how can you trust the trust? We also have plenty of trusts which are questionably aligned with their makers last wills, among them the Nobel peace prize (Nobel didn't just want the prize to go to anyone working for any kind of advancement of peace. He had a very particular instrument for peace in mind, namely peace conferences, which I don't think any laureate has arranged for fifty years.)

I think we have too many trusts already. Let the living decide what's important in life, not the dead.