frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Tiny C Compiler

https://bellard.org/tcc/
141•guerrilla•5h ago•63 comments

Show HN: LocalGPT – A local-first AI assistant in Rust with persistent memory

https://github.com/localgpt-app/localgpt
20•yi_wang•1h ago•4 comments

SectorC: A C Compiler in 512 bytes

https://xorvoid.com/sectorc.html
222•valyala•9h ago•42 comments

Speed up responses with fast mode

https://code.claude.com/docs/en/fast-mode
128•surprisetalk•8h ago•138 comments

Software factories and the agentic moment

https://factory.strongdm.ai/
161•mellosouls•11h ago•319 comments

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

https://openciv3.org/
896•klaussilveira•1d ago•273 comments

Brookhaven Lab's RHIC concludes 25-year run with final collisions

https://www.hpcwire.com/off-the-wire/brookhaven-labs-rhic-concludes-25-year-run-with-final-collis...
51•gnufx•7h ago•52 comments

Stories from 25 Years of Software Development

https://susam.net/twenty-five-years-of-computing.html
145•vinhnx•12h ago•16 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
170•AlexeyBrin•14h ago•30 comments

Show HN: Craftplan – Elixir-based micro-ERP for small-scale manufacturers

https://puemos.github.io/craftplan/
15•deofoo•4d ago•3 comments

FDA intends to take action against non-FDA-approved GLP-1 drugs

https://www.fda.gov/news-events/press-announcements/fda-intends-take-action-against-non-fda-appro...
83•randycupertino•4h ago•167 comments

First Proof

https://arxiv.org/abs/2602.05192
110•samasblack•11h ago•70 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
282•jesperordrup•19h ago•92 comments

Show HN: I saw this cool navigation reveal, so I made a simple HTML+CSS version

https://github.com/Momciloo/fun-with-clip-path
62•momciloo•9h ago•12 comments

Al Lowe on model trains, funny deaths and working with Disney

https://spillhistorie.no/2026/02/06/interview-with-sierra-veteran-al-lowe/
93•thelok•11h ago•20 comments

The F Word

http://muratbuffalo.blogspot.com/2026/02/friction.html
104•zdw•3d ago•52 comments

Show HN: A luma dependent chroma compression algorithm (image compression)

https://www.bitsnbites.eu/a-spatial-domain-variable-block-size-luma-dependent-chroma-compression-...
31•mbitsnbites•3d ago•2 comments

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
560•theblazehen•3d ago•206 comments

IBM Beam Spring: The Ultimate Retro Keyboard

https://www.rs-online.com/designspark/ibm-beam-spring-the-ultimate-retro-keyboard
5•rbanffy•4d ago•0 comments

Eigen: Building a Workspace

https://reindernijhoff.net/2025/10/eigen-building-a-workspace/
9•todsacerdoti•4d ago•2 comments

Microsoft account bugs locked me out of Notepad – Are thin clients ruining PCs?

https://www.windowscentral.com/microsoft/windows-11/windows-locked-me-out-of-notepad-is-the-thin-...
109•josephcsible•7h ago•128 comments

The AI boom is causing shortages everywhere else

https://www.washingtonpost.com/technology/2026/02/07/ai-spending-economy-shortages/
264•1vuio0pswjnm7•15h ago•445 comments

Selection rather than prediction

https://voratiq.com/blog/selection-rather-than-prediction/
28•languid-photic•4d ago•9 comments

I write games in C (yes, C) (2016)

https://jonathanwhiting.com/writing/blog/games_in_c/
175•valyala•9h ago•165 comments

Reinforcement Learning from Human Feedback

https://rlhfbook.com/
114•onurkanbkrc•14h ago•5 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
142•videotopia•4d ago•47 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
223•limoce•4d ago•124 comments

Where did all the starships go?

https://www.datawrapper.de/blog/science-fiction-decline
133•speckx•4d ago•210 comments

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

https://github.com/valdanylchuk/breezydemo
297•isitcontent•1d ago•39 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
579•todsacerdoti•1d ago•280 comments
Open in hackernews

Python argparse has a limitation on argument groups that makes me sad

https://utcc.utoronto.ca/~cks/space/blog/python/ArgparseAndNestedGroups
29•zdw•8mo ago

Comments

lordkrandel•8mo ago
True, it's annoying
mjevans•7mo ago
Is there a standard python library that does annotate if an argument is user provided or instead (just) the default value?

This is extremely important for configuration priority. Program defaults (generally) should be the lowest priority level. Superseded by configuration files. Superseded by command-line arguments. Finally replaced by configuration changes during runtime. Notably each is (in theory) specified in a more specific context as well as more recently.

Neywiny•7mo ago
I think this is doable but as an X vs Y problem. You can either not have a default and check if it's in the namespace later, or make the default value be the previously highest priority value as a run-time defined default. Do either of those work?
mjevans•7mo ago
It would be nice if --help reports the (program) default as the default value for an option. A different option might dump a fully evaluated configuration. While a third might exit without doing anything.
Elixir6419•7mo ago
if you pass formatter_class=argparse.ArgumentDefaultsHelpFormatter) you will get exactly that.

shameless copy from https://stackoverflow.com/questions/12151306/argparse-way-to...

dodslaser•7mo ago
This can be done using click.
ErikBjare•7mo ago
Not with multiple=True, since it then always returns an empty list and never None, even if the default is None.
dodslaser•7mo ago
Yes it can. click.Context provides a get_parameter_source method that should help with that.
ErikBjare•7mo ago
Thank you! I recently got bitten by this limitation and will make use of get_parameter_source. I gave you credit/mentioned in the issue to restore our use of `multiple=True` behavior: https://github.com/gptme/gptme/issues/560
NewsaHackO•7mo ago
Can't you just generate all the groups by having a function the created a set of each individual timeout (--notimeout,--timeout-x) to pass to the parser?
bartread•7mo ago
I wondered this as well. I must admit I’ve not yet written a command line tool (in Python) where I’ve needed what the author describes, but I did wonder if adding multiple exclusive groups with --notimeout as a member of all of the groups would do the trick. Perhaps you get an error or get into undefined behaviour territory but it would certainly be worth trying.
qwertox•7mo ago
I mean, he does have a point, but his point has a solution: do not put them in mutually exclusive groups if they aren't mutually exclusive.

It seems more like this is a missing feature rather than an issue with mutually exclusive, if the desire is that `argparse` handles this in an elegant, internal way.

So, yes, `argparse` has a limitation on argument groups, but `add_mutually_exclusive_group` is not the issue.

looknee•7mo ago
The gcloud CLI handles this using argparse, having a parent mutex group with one child —no-timeout flag and then a child group containing the timeout flags.
what•7mo ago
But the docs say you can’t (or shouldn’t) add a child group because it’s not supported and will be removed…
xg15•7mo ago
So the author wants a configuration, where I can either run the program with

--foo-timeout=5 --bar-timeout=10

or with

--no-timeouts

which disables the timeouts for both too and bar.

I don't know the author's entire usecase, but it seems odd that you would specifically NOT want the user to only disable one timeout, but keep all the others active.

Unless there is a real reason for this, the more logical design for me would be to treat --foo-timeout=0 or something as the setting to disable timeout foo.

Not sure if argparse supports aliases, but if it does, --no-timeouts could then be defined as an alias for "--foo-timeout=0 --bar-timeout=0 --baz-timeout=0" etc etc.

NoahZuniga•7mo ago
They probably mean a combination like: I want the program to time out if the server response isn't done after 60 seconds I want the program to time out if the the last byte from the server is more than 10 seconds ago.

It doesn't make sense to say I want one of these timeouts and --no-timeout