frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

BYOMesh – New LoRa mesh radio offers 100x the bandwidth

https://partyon.xyz/@nullagent/116499715071759135
59•nullagent•1h ago•17 comments

Why TUIs Are Back

https://wiki.alcidesfonseca.com/blog/why-tuis-are-back/
37•rickcarlino•43m ago•8 comments

Southwest Headquarters Tour

https://katherinemichel.github.io/blog/travel/southwest-headquarters-tour-2026.html
91•KatiMichel•2h ago•10 comments

A desktop made for one

https://isene.org/2026/05/Audience-of-One.html
87•xngbuilds•3h ago•35 comments

Mercedes-Benz commits to bringing back physical buttons

https://www.drive.com.au/news/mercedes-benz-commits-to-bringing-back-phycial-buttons/
441•teleforce•4h ago•256 comments

The Death of Scrum – Built for a slower world, performed by those who left

https://death-of-scrum.net/
22•mantyx•57m ago•17 comments

How far behind is each major Chromium browser?

https://chromium-drift.pages.dev/
105•skaul•2h ago•39 comments

I recreated the Apple Lisa computer inside an FPGA [video]

https://www.youtube.com/watch?v=8jNQDcpHc68
15•cyrc•1h ago•1 comments

Bad Connection: Global telecom exploitation by covert surveillance actors

https://citizenlab.ca/research/uncovering-global-telecom-exploitation-by-covert-surveillance-actors/
25•miohtama•3h ago•3 comments

Security through obscurity is not bad

https://mobeigi.com/blog/security/security-through-obscurity-is-not-bad/
57•mobeigi•4h ago•65 comments

Alert-driven monitoring

https://simpleobservability.com/docs/alert-driven-monitoring
74•khazit•5h ago•33 comments

OpenAI's o1 correctly diagnosed 67% of ER patients vs. 50-55% by triage doctors

https://www.theguardian.com/technology/2026/apr/30/ai-outperforms-doctors-in-harvard-trial-of-eme...
37•donsupreme•18h ago•8 comments

Metal Gear Solid 2's source code has been leaked on 4chan

https://www.thegamer.com/mgs2-hd-edition-source-code-massive-leak/
99•rishabhd•2h ago•31 comments

I built my own hair electrolysis machine

https://www.scd31.com/posts/diy-hair-electrolysis-machine
70•y1n0•4d ago•12 comments

What is Z-Angle Memory and why is Intel developing it?

https://www.hpcwire.com/2026/02/05/what-is-z-angle-memory-and-why-is-intel-developing-it/
54•rbanffy•2d ago•21 comments

Cordouan Lighthouse

https://en.wikipedia.org/wiki/Cordouan_Lighthouse
19•Petiver•4d ago•1 comments

Brain scans reveal 3 ADHD subtypes

https://www.washingtonpost.com/health/2026/04/30/adhd-subtype-extreme-brain-scans/
28•brandonb•2d ago•6 comments

Text-to-CAD

https://github.com/earthtojake/text-to-cad
11•softservo•2d ago•3 comments

Show HN: Ableton Live MCP

https://github.com/bschoepke/ableton-live-mcp
6•bschoepke•1h ago•2 comments

Infrasound waves stop kitchen fires, but can they replace sprinklers?

https://arstechnica.com/gadgets/2026/05/startup-says-sound-waves-can-replace-fire-sprinklers-expe...
26•0in•1d ago•15 comments

Show HN: Apple's SHARP running in the browser via ONNX runtime web

https://github.com/bring-shrubbery/ml-sharp-web
137•bring-shrubbery•10h ago•36 comments

Underwater robot tracks sperm whale conversations in real time

https://www.reuters.com/business/environment/underwater-robot-tracks-sperm-whale-conversations-re...
10•thedebuglife•2h ago•0 comments

How Kepler built verifiable AI for financial services with Claude

https://claude.com/blog/how-kepler-built-verifiable-ai-for-financial-services-with-claude
15•eddiehammond•1h ago•6 comments

Denuvo has been cracked in all single-player games it previously protected

https://www.tomshardware.com/video-games/pc-gaming/denuvo-has-been-bypassed-in-all-single-player-...
114•oceansky•4d ago•30 comments

Talking to Transformers

https://miraos.org/blog/2026/05/02/talking-to-transformers
5•taylorsatula•1h ago•1 comments

A couple million lines of Haskell: Production engineering at Mercury

https://blog.haskell.org/a-couple-million-lines-of-haskell/
376•unignorant•19h ago•183 comments

Nuclear receptor 4A1 linked to health effects of coffee: study

https://sciencex.com/news/2026-04-coffee-doesnt-key-biological-pathway.html
83•pseudolus•8h ago•63 comments

For thirty years I programmed with Phish on, every day

https://christophermeiklejohn.com/ai/personal/phish/flow/agents/2026/05/03/rift.html
178•azhenley•3h ago•131 comments

Porsche will contest Laguna Seca in historic colors of the Apple Computer livery

https://newsroom.porsche.com/en_US/2026/motorsport/porsche-will-contest-laguna-seca-in-historic-c...
89•Amorymeltzer•5h ago•33 comments

Group averages obscure how an individual's brain controls behavior: study

https://med.stanford.edu/news/all-news/2026/04/brain-scans-individual-versus-group.html
97•hhs•2d ago•26 comments
Open in hackernews

Shell-secrets – GPG-encrypted environment variables

https://github.com/waj/shell-secrets
93•mgarciaisaia•1y ago

Comments

woodruffw•1y ago
The more general version of this is probably sops[1].

(A general problem with these kinds of “wrap GPG” tools is that you end up with “mystery meat” encryption/signatures: your tool’s security margin is at the mercy of GPG’s opaque and historically not very good defaults.)

[1]: https://github.com/getsops/sops

aborsy•1y ago
GPG man page is long. But to be fair, GPG, which I have used for decades, has never failed me.
theteapot•1y ago
This is 13 lines of Bash plus GPG which is available ~everywhere and a pretty lowish level Linux dependency. SOPS is +20KLOC of Go with support for cloud KMS etc etc. I think you got your mystery meat analogy backwards.
woodruffw•1y ago
The mystery meat in question is GPG, not sops or this.

(I also wouldn’t call GPG a low level dependency.)

theteapot•1y ago
lowish. Meaning if you run a Linux desktop env with a mild amount of software installed it's likely pulled in already.
ikiris•1y ago
So is Perl, that doesn’t make it a good argument to use it still for the same reasons.
akoboldfrying•1y ago
Perl is horrible, but for one-liners it's strictly less horrible than either sed or awk, which people still use because they are less horrible than pure Bourne shell for some common tasks.
woodruffw•1y ago
I’ve used a Linux desktop for my entire adult life, and I’m pretty sure GPG has never been bundled directly with my environment. I used to install it directly, but I haven’t needed that in years either since everything I needed GPG for (= git) supports SSH signing instead.
mgarciaisaia•1y ago
I didn't know about sops, thanks for sharing!

Encrypting YAML files' values may be handy for another project - will take note of it.

pluto_modadic•1y ago
for a newer password manager... https://github.com/FiloSottile/passage
qyckudnefDi5•1y ago
Looks like FiloSottile may have switched from passage to 1Password:

https://bsky.app/profile/filippo.abyssdomain.expert/post/3l5...

Would be interesting to get more context why move from storing passwords locally to an online service.

FiloSottile•1y ago
Team sharing with a non-technical person, mostly.

I still have high-value passwords and CLI credentials in passage + age-plugin-yubikey.

bitbasher•1y ago
Couldn't you just use pass and have something like this in your bash script/env:

export SOME_SECRET="$(pass show some/secret)"

Piraty•1y ago
this in a credentials file to source before doing some operation? sure. I usually do: ` ( . ./credentials && ./the_thing ) ` so the secrets are only in the subshell and don't linger in my shell session forever.

but don't put that in <shell>rc , as it a) will be visible for all other (child) processes of your shell b) will spawn pinentry everytime the agent's cache ttl expires

varenc•1y ago
That hides it in the source, but doesn't hide it in the execution environment that can access the ENV. Everything you run inside your shell could still read it. (but if you're running untrusted things...you've already lost)
ognarb•1y ago
I like the idea. GPG encryption are super helful when sharing secrets.

Disclaimer: I work on some UI for GPG as my day job.

hnlmorg•1y ago
Coincidentally I’ve written something similar to this too.

My main takeaway was that GPG isn’t nearly as user friendly as it needs to be.

mmh0000•1y ago
Highly true. Yet. If you complain or even offer patches (which will, always, without fail, be rejected).

You'll get told off by the GPG devs with something along the lines of "encryption is supposed to be hard".

9dev•1y ago
How hard would it be to devise an easy to use wrapper on top of GPG, kind of porcelain-like?
thayne•1y ago
You may be interested in https://sequoia-pgp.org/

It isn't exactly a wrapper, but it has an easier to use interface (as well as a more gpg compatible interface).

ognarb•1y ago
It already exists and it's called Kleopatra. It's developed by KDE with some support from the GPG developers and is part of the Gpg4Win suite.

It's used by quite a few companies and public administrations.

akerl_•1y ago
The easier and more productive thing is to make an easy-to-use tool that does a specific workflow vs trying to be a swiss army knife.

https://github.com/FiloSottile/age is this for encrypting files.

https://en.wikipedia.org/wiki/Signify_(OpenBSD) and https://jedisct1.github.io/minisign/ are this for signing files.

Signal/Whatsapp/etc that use the Signal Protocal are this for messaging.

It turns out solving one problem at a time and ending up with a bunch of purpose-built tools is way easier to get right than trying to jam an entire toolbox into one thing.

emmelaich•1y ago
There's a library wrapper, https://www.gnupg.org/software/gpgme/index.html

>GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier for applications. It provides a High-Level Crypto API for encryption, decryption, signing, signature verification and key management. Currently it uses GnuPG's OpenPGP backend as the default, but the API isn't restricted to this engine. We have, in fact, already developed a backend for CMS (S/MIME).

upofadown•1y ago
I have been following the GnuPG mailing list for some years now. I must of missed that. Could we have some references to where someone has been told something to the effect of "encryption is supposed to be hard".
Valodim•1y ago
The correct way to do stuff like this these days with openpgp is to use a SOP (stateless openpgp) implementation. https://www.openpgp.org/about/sop/
viraptor•1y ago
Unless you're good at actually maintaining your gpg keychain and need other people to access this, I really wouldn't bother with gpg. There are way better and simpler options.

Age has a simpler interface and SSH key support https://github.com/FiloSottile/age

ejson2env has the environment variable integration and ejson has multiple backends https://github.com/Shopify/ejson2env

direnv can support any cli secrets manager per project directory https://direnv.net/

I've dealt with enough "why did this break" situations with gpg secrets files used by capable teams that I'd never recommend that to anyone. And unless you really need the public key support (teams and deployment support), you're unlikely to gain anything better over a password manager.

akoboldfrying•1y ago
age looks really interesting, thanks. I also learned from that page that appending ".keys" to your GitHub profile URL (so https://github.com/yourusername.keys) returns a list of your SSH public keys! (Where is this documented...?)
tomjakubowski•1y ago
Another trick with github urls: you can append .patch or .diff to any PR or commit URL, and you'll get back a git-formatted patch or diff.

https://github.com/rust-lang/rust/pull/139966

https://github.com/rust-lang/rust/pull/139966.patch

https://github.com/rust-lang/rust/pull/139966.diff

theteapot•1y ago
The tool is just pulling one encryption key from your local GPG keyring. What's to maintain?
viraptor•1y ago
What happens when you have multiple matching keys? What happens when your key expires? What happens when the output format changes? What happens when the key expires and it's attached to a hardware device? Gpg can fail in ways which do not tell you anything about the real underlying issue.

I promise this happens all the time to people for lots of stupid reasons.

theteapot•1y ago
> What happens when you have multiple matching keys?

Use keyid instead.

> What happens when your key expires?

GPG will refuse to use it for encryption. Create a new encryption key.

> What happens when the output format changes?

N/A here (?)

> What happens when the key expires and it's attached to a hardware device?

You got me.

XorNot•1y ago
Also.. expired keys aren't unusable. The encryption doesn't stop working.

If you have an expired GPG private key it will still decrypt things encrypted with the public key.

viraptor•1y ago
They're not unusable, but depending on the gpg wrapper it may look like it. Gpgme is the one I had most issues with raining with fatal errors where gpg on its own only reports a warning.

Non of this is impossible to overcome. Yet, I still was sometimes relied on to debug things.

XorNot•1y ago
Gonna have to give that a try because it sounds like a very bad interpretation of the expiry mechanism in keys - encryption functionally never expires if you have the key, because you have the key. It's solely an error on the part of the sender to use an expired key, because it might be no longer available.

(admittedly AFAIK encryption is handled by key expiry poorly overall in GPG - the lack of perfect forward secrecy means an expired key which leaks can still decrypt all the old messages if they were intercepted).

mgarciaisaia•1y ago
Oh - so age would be a gpg replacement, and not a shell-secrets replacement. I guess it could work, but also I haven't had any issues with GPG yet (in my ~4 years regularly using shell-secrets).

ejson2env sounds nice. Don't like the syntax of `eval $(...)`, but it does THE thing that most don't - it encrypts the secrets at rest!

Also, I have multiple logins for some services (company account vs company's client account), so separating concerns is cool. And having the "context" name in the PS1 helps avoid issuing the wrong command on the wrong account - you can even add emojis to the name for maximum discernability.

upofadown•1y ago
Age doesn't even have a keychain. You are expected to maintain your keys manually. So yeah, you will never have a problem with the age keychain. In the same way you will never get into trouble with the law in an anarchy. Not everyone wants to have to deal with all the details themselves.
asveikau•1y ago
I do something like this in my .muttrc. It was showing up in documentation iirc, as the typical way to store credentials for mutt.
dvektor•1y ago
I store my secrets in gpg encrypted files and inject them into my environment in my shell rc file.

AWS_SECRET_ACCESS_KEY=$(gpg -d ~/.secrets/aws/key.asc)

type of deal. its annoying to put in a password every time i open a new tmux pane but hey, better than plain text.

viraptor•1y ago
If you're using more complicated systems than just a single root account, have a look at https://github.com/99designs/aws-vault too.
mgarciaisaia•1y ago
That was what I did before knowing about shell-secrets. But I also need different "contexts" on the same domains/tools (different AWS accounts and credentials for different clients), and having none "set" by default prevents me from running _whatever command_ by mistake the majority of the time.
ykonstant•1y ago
Since GPG and openssh support the TPM for some operations, I am tempted to store secrets in the TPM instead; I think a hardware safe is better than messing with persistent envars and having to pay attention to children etc.

But I am very nervous about doing so, since I have heard bad things about the reliability of the TPM (limited writes or something?) and locking myself out of important places. Any people with experience using the TPM for secrets in Linux?

vcdimension•1y ago
I've forked the repo and created a zsh version: https://github.com/vapniks/shell-secrets