MurphyA/hacker-news huggingface dataset:
Show HN: A visual "prompt engine" that turns one word into a full AI art brief
by nmr521521 | 2026-01-04 12:00:07+00:00
When working with AI image generators, the hardest part often isn’t the model – it’s the empty prompt box. You may have a clear cinematic scene in mind, but turning that into a structured, detailed prompt is surprisingly hard.

I’ve been working on a tool called Creative Engine that tries to solve that problem with a visual, graph-based workflow instead of a text-only form. You type a single theme (e.g. “cyberpunk”), and the system expands it into a semantic map of related concepts:

- Subject: richer variants like “cyberpunk cyborg cat”, “interstellar wanderer”, etc.

- Vibe: moods such as “psychedelic neon”, “cinematic cold tone”, “dreamy soft glow”.

- Details & composition: fine-grained texture, perspective, framing options.

- Styles: integrated with a style library (e.g. “Ghibli-esque hand-drawn”, “Unreal Engine 5 render”).

You can then click through this “idea map” to pick the nodes you like, and an intelligent combination engine turns your selections into multiple, fully formatted prompts with different emphases. The goal is to make the process feel more like “visual brainstorming” and less like memorizing prompt recipes.

- The UI is built around an interactive canvas that animates how your concept branches into related nodes, so you can literally watch your idea “grow”.

- Under the hood it uses graph-like structures and semantic associations to keep the expansions coherent instead of random tag spam.

- Power users can export the whole inspiration map (image/JSON) and reuse prompts across other tools or pipelines.

If you often get stuck at the “what should I actually type?” stage of AI art, this might be useful as a thinking aid or as a way to systematize prompt engineering for a team.

You can try it here (free, but desktop, login required):
https://z-image.me/en/prompt-engineer

I’d love feedback on:

Whether the “graph of ideas” UX actually feels better than a big textarea.

What extra dimensions (lighting, camera, storytelling, etc.) you’d want to see in the node network.

Any obvious “gotchas” if you were to integrate something like this into your own creative or production workflow.
by az09mugen | 2026-01-04 12:00:21+00:00
Hello, interesting choices in the syntax. I always wanted python with the possibility of writing it with functional concepts. And that's very nice.

It's purely personal, by reading "Features at a glance" there is the interpolation of Ruby that I really don't like, I prefer by far the f-strings of python. And I don't think I'll be using unless and until that much (aren't they also Ruby ?). Again that's just IMHO.

If I had more skills in writing parsers and tokenizers, that's probably a project I'd do.

Nice job !
by solenoid0937 | 2026-01-04 12:00:24+00:00
I've had this bookmarked for years. It is my vision for the future.

It is more relevant now than ever, when techno-pessimism is on the rise, and people are forgetting the incredible technology that makes their quality of life real - and could guarantee the lives of billions in the future.

I'm 30 and probably won't live to see this future. I only hope cryonics can get me there, but I doubt it - so much information is lost.
by dhx | 2026-01-04 12:01:27+00:00
I was looking for @marklit (Mark Litwintschik / https://tech.marksblogg.com) in the list as he's a geospatial-focussed blogger I've seen regularly on HN with interesting blog posts where he finds and presents open source datasets I'd never thought about, walks through some basic processing/querying steps, and provides some examples of what can be produced with the data. Many of the blog posts have left me thinking about possibilities to setup bots for uploading maps to Wikimedia Commons (for embedding within Wikipedias etc) based on these interesting datasets, or at least automating via scripts the development/upload of maps on a country-by-country basis (or other criteria) for static once-off datasets.

Unfortunately he doesn't show in the top 100. Also unfortunately, there is no blogger described in the top 100 as having a geospatial interest/focus.
Show HN: Rails-like web framework for Go
by mbvisti | 2026-01-04 12:01:35+00:00
Over the past couple of months I have been working on my own framework the encapsulates how I have come to build web apps using Go.

The aim is to make it faster and easier to build full-stack web applications that fully embraces hypermedia instead of JSON data API backend + SPA fronted

It's getting close to a v1-beta release but the core structure and functionality is there.

Would love to hear hn's thoughts!
by TacticalCoder | 2026-01-04 12:01:37+00:00
> Wayland basically failed to learn the lessons from X11

To me the biggest issue of Wayland is that it aimed, on purpose, to imitate Windows or OS X or any GUI that is not built on the idea of a client/server protocol.

From TFA:

> I’ll also need a solution for running Emacs remotely.

If only there was something conceived from the start as a client/server display protocol...
by kbrkbr | 2026-01-04 12:02:03+00:00
I had the same impression. Whatever it is about, it is not about

> Why The Great Gatsby is the world's most misunderstood novel

The first thought I had when reading the headline was: by what measure?

I wanted to give the benefit of doubt, but there is not even an attempt to answer the question set out at the beginning.

Instead, like you say, somewhat of an advertisment for later derivations with no clear idea of where to go.

For me underwhelming.
by mlrtime | 2026-01-04 12:02:06+00:00
>LLMs are nothing like that. Using a LLM is more akin to management of outsource software development.

You're going to have to tell us your definition of 'Using a LLM' because it is not akin to outsourcing (As I use it).

When I use clause, I tell it the architecture, the libraries, the data flows, everything. It just puts the code down which is the boring part and happens fast.

The time is spent mostly on testing, finding edge cases. The exact same thing if I wrote it all myself.

I don't see how this is hard for people to grasp?
by jackfranklyn | 2026-01-04 12:02:29+00:00
The "what" vs "why" distinction breaks down when your code encodes domain knowledge that readers can't infer from context.

I build accounting software and half my "what" comments are actually explaining business rules that would be impenetrable otherwise. Something like:

// Bank transfers appear as two transactions - a debit here and credit elsewhere
// We match them by looking for equal-opposite amounts within a 3-day window

That's explaining "what" but also implicitly "why" - because that's how double-entry works and that's the tolerance banks allow for settlement delays. You can't really extract that into a method name without it becoming absurd.

The Uncle Bob approach of extractNameMatchingTransfersWithinSettlementWindow() doesn't actually help - now I need to know what settlement windows are anyway, and I've lost the context of why 3 days.
by ImPrajyoth | 2026-01-04 12:03:32+00:00
That is actually a brilliant pivot.

A 'Focus Mode' that doesn't just block URLs but literally murders the process if I open Steam or Civilization VI.

I could probably add a --mode strict flag that swaps the system prompt to be a ruthless productivity coach. 'Oh, you opened Discord? Roast and Kill.'

Thanks for the idea mate!
by Sporktacular | 2026-01-04 12:04:09+00:00
Only because no one is presenting both options to the public as a choice - cheap gas but you'll screw up dozens of countries and create insecurity for your kids. They would be less likely to want that if they understood the tradeoff. Let's be clear, this choice was made by rich people who'll make a lot more money from it, and they won't be the ones bearing the costs. So this isn't on Americans' greed, just their ignorance.
by charcircuit | 2026-01-04 12:05:03+00:00
I mean proprietary API in the sense that the API is solely owned and developed by Mesa. It is not a standardized API, but a custom one specific to their project.

Even today if you use the API your program has to link to Mesa's libgbm.so as opposed to linking to a library provided by the graphics driver like libEGL.so.
by maury91 | 2026-01-04 12:05:05+00:00
Location: Vilnius, Lithuania.
Remote: Open to in-person, hybrid, and remote.
Willing to relocate: No.
Technologies: Figma, Adobe Illustrator, Adobe Photoshop, Jira, AI tools.
Résumé/CV:
https://www.behance.net/ucarboni/projects
https://www.linkedin.com/in/ucarboni/

Email: u.valaityte@yahoo.com
by reactordev | 2026-01-04 12:06:09+00:00
Should stick a (2017) on there as this is almost a decade old.

Comments should explain. If it’s why, it’s why. If it’s what, it’s what. The point of comments is to explain, to the reader/editor, what the intent of the code is and how you chose to approach it. That’s it. No need to fight over what, why, how, who, etc.

If you have domain knowledge that helps support the code, maybe a link to further reading, by all means add it to comments please!
by ImPrajyoth | 2026-01-04 12:07:58+00:00
Imagine Chrome.exe pleading its case: 'Please, I need 4GB of RAM, the user might revisit that tab from 3 hours ago!'

while BrainKernel replies: 'Objection overruled. You have 5 seconds to wrap up before SIGKILL.'

I might actually have to build a 'Process Defense Attorney' agent now. The logs would be hilarious.
by sylware | 2026-01-04 12:07:59+00:00
Since there are many wayland compositors, wayland clients must be very conservative (don't be fancy) and most of all respect the dynamic discovery of the interfaces and features and must adjust (from core to stable interfaces).

For instance, a compositor may not support a clipboard, and the "data" related interfaces must be queried for availability (those interface are stable in core) and the client must disable such functionality if not there (for instance, wterm terminal is faulty because it forces a compositor to have such interfaces... but havoc terminal is doing it right). I don't know yet if libSDL3 wayland support "behaves" properly. wterm fix is boring but should be easy.

As wayland usage, it is probably almost everwhere (and Xwayland is there for some level of legacy compatibility).

(I am currently writting my own compositor for AMD GPUs... in risc-v assembly running on x86_64 via an interpreter)
by xelxebar | 2026-01-04 12:08:12+00:00
Recently, this opinionated list of PGP alternatives went around:

https://soatok.blog/2024/11/15/what-to-use-instead-of-pgp/

One use case I've not seen covered is sending blobs asynchronously with forward secrecy. Wormhole requires synchronously communicating the password somehow, and Signal requires reasonable buy-in by the recipient.

Basically, I'd like to just email sensitive banking and customer data in an encrypted attachment without needing to trust that the recipient will never accidentally leak their encryption key.
by 63stack | 2026-01-04 12:08:18+00:00
I just had the same thought. I searched for the book mentioned, and as soon as zettelkasten popped up I lost interest. I've read about zettelkasten so many times, but I can't get myself to actually try it, it seems like doing organization for the sake of declaring "I'm very organized", regardless whether it's efficient or not.
by narukeu | 2026-01-04 12:08:25+00:00
I agree with your point. From my observation, bundlers in the JavaScript ecosystem are indeed becoming more specialized. Meanwhile, tooling libraries and backend code are genuinely moving away from bundlers due to the growing popularity of the "Pure ESM" concept. If that's the case, bundlers may truly be relevant only for frontend scenarios now. Given this shift, it makes more sense to focus bundlers specifically on frontend use cases, and we no longer need those "general-purpose" bundlers. Moreover, Webpack really is overly complex.
by frumiousirc | 2026-01-04 12:09:05+00:00
The article is about comments. But, more generally, I think the issue here is about naming things.

Names capture ideas. Only if we name something can we (or at least I) reason about it. The more clear and descriptive a name for something is, the less cognitive load is required to include the thing in that reasoning.

TFA's example that "weight" is a better variable name than "w" is because "weight" immediately has a meaning while use of "w" requires me to carry around the cumbersome "w is weight" whenever I see or think about "w".

Function names serve the same purpose as variable names but for operations instead of data.

Of course, with naming, context matters and defining functions adds lines of code which adds complexity. As does defining overly verbose variable names: "the_weight_of_the_red_ball" instead of "weight". So, some balance that takes into account the context is needed and perhaps there is some art in finding that balance.

Comments, then, provide a useful intermediate on a spectrum between function-heavy "Uncle Bob" style and function-less "stream of consciousness" style.
by alwinaugustin | 2026-01-04 12:09:38+00:00
Location: Luxembourg (EU)

Remote: Yes

Willing to relocate: Yes

Technologies:

Node.js, TypeScript, Python, PHP (Laravel), SQL, React, Vue, Angular, Docker, AWS, CI/CD, microservices, data-heavy backend systems, SaaS platforms, LLM-assisted features in production

Résumé/CV:

https://linkedin.com/in/alwinaugustin

(GitHub: https://github.com/alwin-augustin
)

Email:

alwinaugustin@gmail.com

I’m a full-stack engineer with 12+ years of experience in multiple languages and technologies and available immediately. I have very good experience in architecture, design and development of scalable web applications.
by SkiFire13 | 2026-01-04 12:09:45+00:00
> The developer has the choice

The developer has the choice between fast or safe. They don't have a choice for checking pre/post conditions, or at least avoiding UB when they are broken, while getting the other benefits of the "fast" mode.

And all in all the biggest issue is that these can be misinterpreted as a safety feature, while they actually add more possibilities for UB!
by constantcrying | 2026-01-04 12:11:00+00:00
They are bound by the GDPR, which automatically puts them ahead of every American or Chinese manufacturer.

E.g. Tesla, even in Europe, is pretty blatantly ignoring privacy laws and is used to surveil the population: https://www.spiegel.de/panorama/justiz/tesla-waechtermodus-f... (paywall)
by b3kart | 2026-01-04 12:11:21+00:00
Not necessarily: assuming I've been following Nik for a while, I have reasons to trust his summary more than an LLMs summary. I would understand Nik's biases, and understand why he would focus on one thing over another. Nik would have a reputational incentive to do a good job and not completely misrepresent the book. I would also value Nik's personal, subjective view on the material, having an understanding of his background, and, again, his biases. On the other hand, I would have no idea what an LLM would focus on when summarizing, I would have no reason to trust it (LLMs fail in unpredictable ways), and an LLMs "opinion" is some average over the internet's + annotator's opinions.
by stevekemp | 2026-01-04 12:11:28+00:00
> A program which had all the keys and serials in existence.

That sounds useful! Back in the day reversing was fun, and I'd rather do it myself than risk downloading malware.

That said I'll never forget the name of astalavista.box.sk - which was sometimes used for reference, and +fravia for giving guidance to the beginners.
by xlii | 2026-01-04 12:11:52+00:00
I'm all against commenting gatekeeping. IMO this is an anti-pattern.

Even in stupidest cases, like:

// add two and two
let four = two + two

The rationale for this is that if you start to mute developer on case of "this is not comment-worthy" you start to actually losing context for the codebase. Sure, maybe "add two and two" is not contextful enough, but "add same account twice" might be signal for appropriate code.

Maybe that's me, but I rarely saw teams which over-document, under-documenting is usually the case. So if we ever meet in professional environment - comment away. Worst case scenario - I'll skim over it.
by mouse-5346 | 2026-01-04 12:12:16+00:00
I think for me it comes down to what I know:

Do I know what I'm looking for? Do I know what I know and what I don't know about this subject? If yes, I prefer text so I can jump to whichever part I need. If not, I prefer a video walkthrough where I might learn about pitfalls, what to do and not to do. I'm open to sitting through a video if I'm learning something new.
by firexcy | 2026-01-04 12:13:57+00:00
Great project. It’s a surprise to learn that it’s possible to make it to #598 with three posts.

(I’m not sure why the data from my old domain, cyhsu.xyz, hasn’t been aggregated to the new hsu.cy, despite the methodology page saying it should. Must I return the canonical header in addition to a 301 code?)

It was also during the past year that I came to realize how powerful and versatile Hugo is. I had used Hugo for many years, touching only the most basic feature set. Last year, I decided to be done with Twitter and Instagram and make my own timelines of text and photo posts with similar layouts. Initially, I thought it might require separate instances of GoToSocial and Pixelfed. It turned out that Hugo could do it all with a few tweaks, and now they are live at hsu.cy/notes and hsu.cy/gallery, respectively. I highly recommend it to everyone who wants to start their own blog.
by xlii | 2026-01-04 12:14:43+00:00
Haskell enters the chat

Haskell (and OCaml I suppose two) are outliers though as one is supposed to have a small functions for single case. It's also super easy to find them and haskell-language-server can even suggest which functions you want based on signatures you have.

But in other languages I agree - it's abomination and actually hurt developers with lower working memory (e.g. neuroatypical ones).
by markus_zhang | 2026-01-04 12:14:52+00:00
I don't know why you got downvoted so I could not reply your question. Here is my reply:

> Out of curiosity, have you found any downsides with that setup long-term? Battery health or missed notifications, for example?

Yeah, it is inconvenient to bring two phones. That's definitely a downside. Battery health is fine. I never missed any notifications so far.
by ImPrajyoth | 2026-01-04 12:15:55+00:00
That is the endgame.

I think we are moving toward a bilayered compute model:
The Cloud: For massive reasoning.

The Local Edge: A small, resilient model that lives on-device and handles the OS loop, privacy, and immediate context.

BrainKernel is my attempt to prototype that Local Edge layer. Its messy right now, but I think the OS of 2030 will definitely have a local LLM baked into the kernel.
by Rodeoclash | 2026-01-04 12:16:03+00:00
I'm sure someone is about to jump in and tell you why you're doing it wrong, but I'm in a similar position to you. I spent the last few days using the AI to help me pull together evidence for our ISO audit and while it didn't do a bad job, it was rife with basic errors. Simple things like consistently formatting a markdown document would work 9/10 times with the other time having it ignore the formatting, or deciding to rewrite other bits of the document for no reason.
by travisgriggs | 2026-01-04 12:16:05+00:00
It depends.

I like programming. Quite a bit. But the modern bureaucratic morass of web technologies is usually only inspiring in the small. I do not like the fact that I have to balance so many different languages and paradigms to get to my end result.

It would be a bit like a playwright aficionado saying “I really love telling stories through stage play” only to discover that all verbs used in dialogue had to be in Japanese, nouns are a mix of Portuguese and German, and connecting words in English. And talking to others to put your play on, all had to be communicated in Faroese and Quechua.
by toxik | 2026-01-04 12:16:07+00:00
I'll be honest, this code is easier to read for me without the comments. Also sorting feels like it's going to be slower than having some kind of set structure? You don't need ordering, just collocation of duplicates. If not or if it's a wash, that is also a good thing to comment. Also I'm not sure about the semantics of Go but it seems this mutates the argument AND returns a value, something I consider dangerous.

Otherwise I agree, people have a weird hang up about short variable names. Somehow not a problem in mathematics...
by abanana | 2026-01-04 12:16:23+00:00
You seem to have filled this thread with a huge number of posts that try to justify SO's actions. Over and over, these justifications are along the lines of "this is our mission", "read our policy", "understand us".

Often, doing what your users want leads to success. Stamping authority over your users, and giving out a constant air of "we know better than all of you", drives them away. And when it's continually emphasized publicly (rather than just inside a marketing department) that the "mission" and the "policy" are infinitely more important than what your users are asking for, that's a pretty quick route to failure.

When you're completely embedded in a culture, you don't have the ability to see it through the eyes of the majority on the outside. I would suggest that some of your replies here - trying to deny the toxicity and condescension - are clearly showing this.
by imtringued | 2026-01-04 12:16:31+00:00
The real problem with post X compositors is that the Wayland developers assumed that the compositor developers will develop additional working groups (an input protocol, a window management protocol, etc) on top of the working group that exclusively focuses on display aka Wayland. Wayland was supposed to be one protocol out of many, with the idea being that if Wayland ever turns out to be a problem it is small in scope and can be replaced easily.

People who are thinking of a Wayland replacement at this stage, mostly because they don't like it, will waste their time reinventing the mature parts instead of thinking about how to solve the remaining problems.

There is also a misunderstanding of the ideology the Wayland developers subscribe to. They want Wayland to be display only, but that doesn't mean they would oppose an input protocol or a window protocol. They just don't want everything to be under the Wayland umbrella like systemd.
by leourbina | 2026-01-04 12:17:29+00:00
And that’s where my hopes vanish. A dictator-wannabe that has a track record of not respecting the peaceful transition of power in _his own_ country and has run his entire campaign on hatred for immigrants and more recently Venezuelans in particular, is going to, all of a sudden, grow a conscience and do what’s right for the Venezuelan people? Let’s call it what it is: this is about oil. I don’t have to say it, because he already did in front of the cameras. He doesn’t care what happens to Venezuela or Venezuelans.
by cogman10 | 2026-01-04 12:17:44+00:00
> You can build these in many more places

Batteries take up much less space for the same power footprint. Next year, my power company is installing a 200 MWh BESS on 10 acres. No way this fits into those sorts of constraints.

> capex is significantly lower

Doubtful. Steel lines and motors are cheap but not that cheap. There's also a higher ongoing maintenance cost as those things need regular monitoring/greasing/cleaning. There's also the need for more security, giant heavy blocks sliding down a hill is pretty dangerous, you'll want enough security to keep someone from hopping the fence to ride a block down/up the hill.

> you can probably build it a hell of a lot faster than a reservoir.

Faster than a reservoir, much slower than a battery farm.

> likely last significantly longer than a lithium ion chemistry battery farm.

With regular maintenance, yes. But that's also true of a battery farm. With regular maintenance, the battery farm will last forever. The expensive part of the battery farm is the initial installation. After that, it's very cheap to incrementally replace modules as they start to fail (which is around 10 to 15 years).