frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
529•klaussilveira•9h ago•146 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
859•xnx•15h ago•518 comments

How we made geo joins 400× faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
72•matheusalmeida•1d ago•13 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
180•isitcontent•9h ago•21 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
182•dmpetrov•10h ago•79 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
294•vecti•11h ago•130 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
69•quibono•4d ago•12 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
343•aktau•16h ago•168 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
338•ostacke•15h ago•90 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
434•todsacerdoti•17h ago•226 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
237•eljojo•12h ago•147 comments

Delimited Continuations vs. Lwt for Threads

https://mirageos.org/blog/delimcc-vs-lwt
13•romes•4d ago•2 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
373•lstoll•16h ago•252 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
6•videotopia•3d ago•0 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
41•kmm•4d ago•3 comments

Show HN: ARM64 Android Dev Kit

https://github.com/denuoweb/ARM64-ADK
14•denuoweb•1d ago•2 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
220•i5heu•12h ago•162 comments

Why I Joined OpenAI

https://www.brendangregg.com/blog/2026-02-07/why-i-joined-openai.html
91•SerCe•5h ago•75 comments

Show HN: R3forth, a ColorForth-inspired language with a tiny VM

https://github.com/phreda4/r3
62•phreda4•9h ago•11 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
162•limoce•3d ago•82 comments

Introducing the Developer Knowledge API and MCP Server

https://developers.googleblog.com/introducing-the-developer-knowledge-api-and-mcp-server/
38•gfortaine•7h ago•10 comments

I spent 5 years in DevOps – Solutions engineering gave me what I was missing

https://infisical.com/blog/devops-to-solutions-engineering
127•vmatsiiako•14h ago•53 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
18•gmays•4h ago•2 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
261•surprisetalk•3d ago•35 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
1029•cdrnsf•19h ago•428 comments

FORTH? Really!?

https://rescrv.net/w/2026/02/06/associative
55•rescrv•17h ago•18 comments

Show HN: Smooth CLI – Token-efficient browser for AI agents

https://docs.smooth.sh/cli/overview
83•antves•1d ago•60 comments

WebView performance significantly slower than PWA

https://issues.chromium.org/issues/40817676
18•denysonique•6h ago•2 comments

Zlob.h 100% POSIX and glibc compatible globbing lib that is faste and better

https://github.com/dmtrKovalenko/zlob
5•neogoose•2h ago•1 comments

I'm going to cure my girlfriend's brain tumor

https://andrewjrod.substack.com/p/im-going-to-cure-my-girlfriends-brain
109•ray__•6h ago•54 comments
Open in hackernews

Lux: A luxurious package manager for Lua

https://github.com/lumen-oss/lux
98•Lyngbakr•3mo ago

Comments

ModernMech•3mo ago
This is interesting but I feel like a lot of these Rust-inspired package managers are a little... too inspired by Rust. This project for instance uses .toml as a config file format, presumably because that's what Cargo does.

But I think for this project in particular, Lua for the config files would have been a better choice!

I think that Lua tries to be a good configuration language (it started as a configuration language called SOL (sun), which configured reports for lithology profiles), and in fact Luarocks uses "rockspec" for their config, which is syntactically Lua. Lux claims to be inspired by Luarocks, and yet they chose to use toml over lua for config. I'm wondering why? What was wrong with lua that made toml a better choice?

edit: Okay, I've found more information where they say they support both formats... which, I don't know if that's the right call? Seems like going with one or the other is better from a project management standpoint, although I can see why they want to give users the option.

> Not everyone may want to migrate (nor use) the TOML system for describing a project. For this reason, I’d had liked Lux to support a rockspec file alongside the TOML file (similar to the old project.rockspec format). This has finally been implemented! By creating a file called extra.rockspec in the project root, you will instruct Lux to merge the TOML and the rockspec together when performing any sort of operation.

BugsJustFindMe•3mo ago
> I can see why they want to give users the option

I completely dislike the practice of giving options for no reason other than to give options. Don't make me learn different ways of doing the same thing to succeed in an ecosystem. Don't make me learn differences and similarities. If one way works properly and doesn't have obvious downsides, stick with having one way. If it has obvious downsides, stick with having a different one way. Subjective format taste isn't a real downside. Pick one format and stick with it.

The line from the zen of Python about how "there should be one-- and preferably only one --obvious way to do it" is something that people all too often forget the value of.

giancarlostoro•3mo ago
> The line from the zen of Python about how "there should be one-- and preferably only one --obvious way to do it" is something that people all too often forget.

The zen of Python should be the zen of all languages.

BugsJustFindMe•3mo ago
Yes, it should be. Sadly it's not even unambiguously the zen of Python these days.
fullstop•3mo ago
Yes, one way to do it. Sync or async!
giancarlostoro•3mo ago
All I'm hearing is that Erlang is the true Zen.
dirtbag__dad•3mo ago
Unfortunately in practice you see snowflake implementations left and right in python.

It’s still unclear to me if python is too expressive for its own good, or if it’s so widely used, that it’s impossible to avoid nonsense

giancarlostoro•3mo ago
I assume like 70% of Python developers do not even know the Zen of Python, let alone PEP-8. It's likely the size.
mrcjkb•3mo ago
Good thing we're not giving options for no reason other than to give options ;)
monooso•3mo ago
The irony of quoting the Zen of Python in a discussion about a package manager. I can think of at least three Python package managers off the top of my head.
SoftTalker•3mo ago
Not to mention they had a major release that (from the sidelines) looked like "throw away everything you know and learn a new way to do things."
BugsJustFindMe•3mo ago
The zen itself is correct even when Python doesn't follow it.
eviks•3mo ago
> If one way works properly and doesn't have obvious downsides, stick with having one way. If it has obvious downsides, stick with having a different one way.

What if you're in the real world with tradeoffs? So you have both obvious downsides and obvious upsides mixed in each option, and what's more important, those depend on the user, not you, so you can't pick one best option?

That's the reason you give options, and you don't need to learn different ways, learn one you like better or just flip a coin

mrcjkb•3mo ago
> presumably because that's what Cargo does.

Nope. We chose TOML as the default for various reasons:

- Simplicity. There are use cases for a turing complete configuration language. Lux is not one of them.

- Ergonomics. The ability to edit it using the CLI (technically, that could be possible with Lua too, but it would be a lot more complex and not a very pleasant UX).

> which, I don't know if that's the right call?

The reason we currently support importing a Lua extra.rockspec is ease of migration for complex projects, e.g. with platform-specific overrides (not yet supported by the TOML spec).

ModernMech•3mo ago
Thanks that does answer my question! Had you considered parsing a subset of lua to get the properties you want? That way users don't have to learn a whole other syntax. I'm thinking in particular of my students whom I teach lua. They struggle enough learning one language, having to teach a second with all its quirks seems like a lot to throw at them.
NuclearPM•3mo ago
Do you think that is more difficult than explaining to the students why they can’t use loops in their lua config files?
ModernMech•3mo ago
I wouldn't present it to them as "these config files are the same thing as Lua but without loops", but instead "these are config files and they have the same syntax as the Lua records we just learned about". And I would prefer that over "these are config files and they have a different syntax as the Lua records we just learned about." Although I can see merits on discussing that syntax differences exist between languages, that tends to overwhelm people learning their first language.
mrcjkb•3mo ago
That's a neat idea, but it would mean we'd have to maintain our own library. When editing with the CLI, you have to make sure you preserve comments, which the toml-edit crate does quite well.
hgs3•3mo ago
> The ability to edit it using the CLI

This perplexes me. Lua was conceived as a configuration language and the whole point of a configuration language is you edit a config file. Trying to abstract this away behind a CLI seems like it misses the ethos of Lua.

It’s also a tad strange that a package manager designed for Lua isn’t written in Lua. Presumably Lua developers already have Lua installed, know Lua, and would more likely contribute to a project written in Lua.

mrcjkb•3mo ago
> Lua was conceived as a configuration language

That alone is a pretty weak argument.

> Trying to abstract this away behind a CLI seems like it misses the ethos of Lua.

With `lx add <package>`, you can install the package and add it to und config file in one step. And do things like fail if the package or version doesn't exist or isn't compatible with your system.

You can provide editor plugins or use LSP to give users hints if there's an update available, and use code actions to update them, etc.

> It’s also a tad strange that a package manager designed for Lua isn’t written in Lua.

Again, the fact that Lux relates to Lua is a pretty weak argument for choosing Lua as a language to write or configure it in.

Lots of Lua libraries and packages aren't written in Lua, but are built with Lua bindings. Lua (which as you yourself just mentioned was conceived as a configuration language) is a pretty poor choice for something with the scope of Lux. In fact, luarocks was recently rewritten in Teal. Lux has a Lua API (lux-lua) which means it can be embedded or used as a Lua library.

> Presumably Lua developers already have Lua installed, know Lua, and would more likely contribute to a project written in Lua.

We're not worried about finding contributors. If anything, what we need are high quality contributions. Lua developers who only know Lua are not what we're looking for.

leptons•3mo ago
"beautiful", "elegant", and "tasteful" have all been used to puff up various libraries, frameworks, etc, and now we have "luxurious" to add to the long list of ridiculous adjectives used to puff up tech. Lovely.
mmcromp•3mo ago
Honestly it makes me roll my eyes, "let's describe our software utility as if we're trapped in a perfume commercial". But on the other hand, I think when creating something it does help to have underlying vision, even if it's abstract or doesn't quite make sense.
dinkleberg•3mo ago
I think that is why despite it being eye roll inducing, there is still value to these descriptors as it explains what they are going for. In this case it tells us they are prioritizing the feel over everything else and for a package manager that is pretty solid focus.
MomsAVoxell•3mo ago
As a Lua dev, I’m pro “anything that makes Lua easier to use/deploy”, and while do I see “lux” from the perspective of precocious naming attempts, I can also immediately overlook it by treating “LUX” as more of an acronym for “Lua User Experience”, so if it is actually able to deliver that promise, the eyes are gonna stop rolling and start focusing on using it ..
otikik•3mo ago
I have always thought that those qualities should be shown, not said. Both in software and in life.
mrcjkb•3mo ago
It's just a silly pun. Search for "moon illuminance" and perhaps you'll get it :)
MomsAVoxell•3mo ago
It’s okay, you know why? Because this is Lua.

Lua developers do, indeed, deserve a bit of lugubriousity with regards to describing luxurious things.

I’m all for ‘lux’ as a tool, if it can be used as the tip of the knife that delivers the pearly oyster.

For a lot of Lua projects, there are other extremes, by the way. There are helaciously discomfiting situations with regards Lua package management in certain environments.

If Lua gets something that makes it far, far easier to deploy, that pearl gets fatter.

saghm•3mo ago
If the biggest flaw in a project is that the name sounds pretentious to some people, it's probably doing something right
NuclearPM•3mo ago
I don’t understand why a package manager needs lint support.
lucsky•3mo ago
Because despite what the tagline says it's not a package manager, but a project manager.
mrcjkb•3mo ago
Lux helps you install and create/maintain packages. Linting is a useful step in the creation of packages.

Pip lets you create virtual environments. Does that mean it's an environment manager, not a package manager?

(╭ರ_•́)

Crestwave•3mo ago
It doesn't, no? You create virtual environments using Python's venv module, not pip. The newer alternatives like uv do handle it, though.
mrcjkb•3mo ago
Right, my bad. Still, being able to do more to aid the creation and maintenance of packages than just install packages doesn't make something "not a package manager".
Lyngbakr•3mo ago
It's like a package manager on steroids!

When I tried using Gleam, I loved that it came with all the basic tooling I needed and that's what I think is so wonderful about Lux. I don't want to spend my time fiddling around with setting up all the individual tools — I just want to write code. For me, Lux makes the broader experience around building Lua projects a lot more enjoyable.

MomsAVoxell•3mo ago
I’ve come to using turboLua as my main Lua ‘Swiss army tool’, since it comes with so many things built-in, on top of a fairly functional luajit 2.0.

https://turbo.readthedocs.io/en/latest/

If I can get lux to deal with the package management scenarios around a few turboLua projects, I’m pretty sure I’m going to ship much more Lua code next year.

atgreen•3mo ago
I recently added a linter to my Common Lisp package manager, ocicl. It seemed like a natural place to put it.
acephal•3mo ago
I've been awaiting the rocks.nvim team to migrate to this
MomsAVoxell•3mo ago
Okay, sounds good, let’s see:

>+ Create and manage Lua projects

Yay!

>- Easily manage dependencies, build steps and more through the lux.toml file.

Boo! Ermm .. .toml?

You lost me at .toml.

Why is .toml being used to configure Lua?

(Disclaimer: I am a long term Lua user/developer and have a strong opinion about all things Lua.)

mrcjkb•3mo ago
https://news.ycombinator.com/item?id=45626961#45630063