frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Global hack on Microsoft Sharepoint hits U.S., state agencies, researchers say

https://www.washingtonpost.com/technology/2025/07/20/microsoft-sharepoint-hack/
449•spenvo•1d ago•207 comments

Uv: Running a script with dependencies

https://docs.astral.sh/uv/guides/scripts/#running-a-script-with-dependencies
138•Bluestein•3h ago•44 comments

AI comes up with bizarre physics experiments, but they work

https://www.quantamagazine.org/ai-comes-up-with-bizarre-physics-experiments-but-they-work-20250721/
48•pseudolus•1h ago•12 comments

If writing is thinking then what happens if AI is doing the writing and reading?

https://hardcoresoftware.learningbyshipping.com/p/234-if-writing-is-thinking
76•whobre•3h ago•53 comments

What went wrong inside recalled Anker PowerCore 10000 power banks?

https://www.lumafield.com/article/what-went-wrong-inside-these-recalled-power-banks
311•walterbell•8h ago•155 comments

AccountingBench: Evaluating LLMs on real long-horizon business tasks

https://accounting.penrose.com/
404•rickcarlino•10h ago•109 comments

Don't bother parsing: Just use images for RAG

https://www.morphik.ai/blog/stop-parsing-docs
192•Adityav369•9h ago•57 comments

TrackWeight: Turn your MacBook's trackpad into a digital weighing scale

https://github.com/KrishKrosh/TrackWeight
476•wtcactus•12h ago•122 comments

Losing language features: some stories about disjoint unions

https://graydon2.dreamwidth.org/318788.html
38•Bogdanp•3d ago•4 comments

The surprising geography of American left-handedness (2015)

https://www.washingtonpost.com/news/wonk/wp/2015/09/22/the-surprising-geography-of-american-left-handedness/
8•roktonos•6h ago•1 comments

A brief history of primary coding languages

https://eclecticlight.co/2025/07/19/a-brief-history-of-primary-coding-languages/
20•ingve•2d ago•7 comments

New records on Wendelstein 7-X

https://www.iter.org/node/20687/new-records-wendelstein-7-x
195•greesil•11h ago•84 comments

Erlang 28 on GRiSP Nano using only 16 MB

https://www.grisp.org/blog/posts/2025-06-11-grisp-nano-codebeam-sto
115•plainOldText•7h ago•7 comments

Scarcity, Inventory, and Inequity: A Deep Dive into Airline Fare Buckets

https://blog.getjetback.com/scarcity-inventory-and-inequity-a-deep-dive-into-airline-fare-buckets/
82•bdev12345•7h ago•30 comments

FCC to eliminate gigabit speed goal and scrap analysis of broadband prices

https://arstechnica.com/civis/threads/fcc-to-eliminate-gigabit-speed-goal-and-scrap-analysis-of-broadband-prices.1508451/page-2
111•Bluestein•3h ago•50 comments

NASA's X-59 Quiet Supersonic Aircraft Begins Taxi Tests

https://www.nasa.gov/image-article/nasas-x-59-quiet-supersonic-aircraft-begins-taxi-tests/
9•rbanffy•2d ago•0 comments

Spice Data (YC S19) Is Hiring a Product Associate (New Grad)

https://www.ycombinator.com/companies/spice-data/jobs/RJz1peY-product-associate-new-grad
1•richard_pepper•5h ago

Occasionally USPS sends me pictures of other people's mail

https://the418.substack.com/p/a-bug-in-the-mail
159•shayneo•12h ago•157 comments

My favourite German word

https://vurt.org/articles/my-favourite-german-word/
19•taubek•2d ago•17 comments

The Fundamentals of Asyncio

https://github.com/anordin95/a-conceptual-overview-of-asyncio/blob/main/readme.md
113•anordin95•8h ago•21 comments

UK backing down on Apple encryption backdoor after pressure from US

https://arstechnica.com/tech-policy/2025/07/uk-backing-down-on-apple-encryption-backdoor-after-pressure-from-us/
451•azalemeth•12h ago•314 comments

Yoni Appelbaum on the real villians behind our housing and mobility problems

https://www.riskgaming.com/p/how-jane-jacobs-got-americans-stuck
50•serviette•6h ago•47 comments

The daily life of a medieval king

https://www.medievalists.net/2025/07/medieval-king-daily-life/
273•diodorus•4d ago•156 comments

I've launched 37 products in 5 years and not doing that again

https://www.indiehackers.com/post/ive-launched-37-products-in-5-years-and-not-doing-that-again-0b66e6e8b3
105•AlexandrBel•14h ago•88 comments

Jqfmt like gofmt, but for jq

https://github.com/noperator/jqfmt
137•Bluestein•9h ago•42 comments

What Will Become of the CIA?

https://www.newyorker.com/magazine/2025/07/28/the-mission-the-cia-in-the-21st-century-tim-weiner-book-review
69•Michelangelo11•8h ago•98 comments

Sutton SignWriting is a writing system for sign languages

https://en.m.wikipedia.org/wiki/SignWriting
23•janpot•2d ago•6 comments

Show HN: Lotas – Cursor for RStudio

https://www.lotas.ai/
60•jorgeoguerra•8h ago•26 comments

In a major reversal, the world bank is backing mega dams (2024)

https://e360.yale.edu/features/world-bank-hydro-dams
37•prmph•6h ago•52 comments

Gemini with Deep Think achieves gold-medal standard at the IMO

https://deepmind.google/discover/blog/advanced-version-of-gemini-with-deep-think-officially-achieves-gold-medal-standard-at-the-international-mathematical-olympiad/
461•meetpateltech•10h ago•211 comments
Open in hackernews

Hiding messages in a deck playing cards

https://asherfalcon.com/blog/posts/3
104•ashfn•3d ago

Comments

ashfn•3d ago
Hey all, I found a cool way to convert text into a specific order of a deck of playing cards. I detailed the instructions of how it works in the blog post but a brief overview would be that it uses Lehmer codes which allow you to uniquely identify each permutation of a set i.e. each of the many many ways a deck of cards can be shuffled/arranged
pmarreck•10h ago
TIL about Lehmer codes... and "poker encoding" ;)

(I just prefer poker to solitaire...)

Someone else mentioned that the orientation of the cards (up or down) and possibly even the front-back facingness of the card (facing up, facing down) would add another 2 possible bits to the available encoding space. (Of course, at that point you'd have to also encode which side of the whole deck is the "top"...)

My own thought was to add par2 to make it robust against small errors... at the cost of some transmission space!

hungmung•9h ago
> Of course, at that point you'd have to also encode which side of the whole deck is the "top"...)

An asymmetrical joker could indicate which short edge is "right way up", while also indicating which card is the first or last of the deck.

ashfn•9h ago
Yeah that would make an interesting addition. I was thinking about error correction so if you swapped two cards it would be okay but was struggling with how it would work, but I think it would be quite fun to add :)
russellbeattie•8h ago
> "...which side of the whole deck is the 'top'..."

A dark line drawn across the top of the deck would be enough. Though it would ruin the stealth factor of the cards.

Also, the pattern on the back of some playing decks isn't symmetrical, so that could be used as well.

istjohn•5h ago
Decode it both ways and see which isn't gibberish.
SetTheorist•3d ago
Reminds me of the playing-card based encryption system designed by Bruce Schneier for the novel Cryptonomicon .

https://en.wikipedia.org/wiki/Solitaire_(cipher)

zahlman•10h ago
Despite appearing to have perfectly ordinary structured static HTML content (aside from the fact that it spams things like <span style="font-weight:bold"> instead of using some basic CSS properly), without JavaScript I only see a solid-colour background.

Anyway, this doesn't offer a whole lot of storage:

  $ python -c 'print(sum(__import__("math").log2(x) for x in range(1, 53)) // 8)'
  28.0
pmarreck•10h ago
https://deckcrypt.github.io/

45 characters according to the blog post and this demo

throwanem•10h ago
45 code points in a custom 5-bit encoding representing 32 characters; 28 bytes (with 1 to 4 bits left over) of 8-bit ASCII.
NooneAtAll3•4h ago
7 characters of UTF-32
throwanem•10h ago
28 bytes out of ~225 bits, sure. (I compute 228 bits, but precision gets funny with quantities so large. Interestingly, an emulated TI-86 and a real TI-89 Titanium returned different answers; the latter wasn't even divisible by 8!)

For movie-plot '52 pick-up' that's not so bad, especially if used to encode something like a key for the "Solitaire" cryptosystem, mentioned nearby, wherein the same deck can in turn be reconfigured and manipulated to generate an arbitrary-length keystream for application to a longer message transmitted under separate cover.

lxgr•10h ago
Nice! But why just hide one message if you can run an entire encryption algorithm with the deck? :)

https://en.wikipedia.org/wiki/Solitaire_(cipher)

empath75•9h ago
Por que no los dos? One deck has the encrypted message, the other deck has the key.
a_t48•10h ago
You should be able to get another 45 bits or so by also using the orientation of the cards (everything except non face card Diamonds).
pg_bot•10h ago
You could also add face up or down.
throwanem•10h ago
You might squeeze a tag bit for the deck out of the 7◇, depending on the pack design.
fsckboy•9h ago
>you might squeeze a tag bit for the deck out of the 7◇

awww, youuuuu!! hugz!

"The Seven of Diamonds meaning in a Tarot reading can show that you will be surrounded by love."

(i was looking it up to find what the different cards looked like and found that)

and yes "you and I might squeeze a bit" later

throwaway290•8h ago
is it just me or that comment unexpectedly lives up to your username
throwanem•8h ago
Good to see you're enjoying yourself, whoever you are.
da_chicken•9h ago
The 2, 4, 8, and 10 of all suits are typically rotationally symmetrical.
joshvm•8h ago
Only if your deck has a rotationally symmetric back. A lot of decks are oriented with pictures or logos. Tarot decks almost always do to allow inverted readings (and you'd get a few more bits out from the major arcana).
ComplexSystems•10h ago
Good stuff. You could get much better bandwidth than this by tokenizing and using something like a Huffman or arithmetic code on token frequencies. As a simple example, if you set your tokens to be all English words - let's say there are between 500k and 1 million - that's about 9-10 bits per word. I am sure you could do much better than this as well
ashfn•9h ago
That sounds very interesting, I'll look into it thanks :)
avidiax•5h ago
You can get much better than that by taking a well-known LLM model and encoding a series of offsets from the most likely sequence of tokens, especially if you are OK with the message being slightly different.

https://arxiv.org/abs/2306.04050

https://bellard.org/ts_zip/

mrdoornbos•8h ago
I've done Pontifex from Cryptonomicon on a Commodore 64 for fun. Bruce Schneier came up with it. https://imapenguin.com/2021/05/making-and-breaking-ciphers-o...
sltkr•8h ago
Pet peeve: the blog post mentions _decimal_ and _denary_ several times, but in reality, there are no decimal numbers involved in any part of the computation.

This is a common mistake made by people who haven't fully internalized the distinction between numbers (which have no intrinsic representation) and _numerals_ which are the encodings of numbers.

When you are converting a permutation to its index, you are not converting to _decimal_, you are converting it to an integer. That integer has no intrinsic base. In Python (and the linked C++ code) that integer will be internally represented in binary (or a base that is a higher power of 2) and the corresponding decimal representation is generated only when printing.

So functions like decimalToFactoradic() should really be named integerToFactoradic(), etc.

tyre•3h ago
> This is a common mistake made by people who haven't fully internalized the distinction between numbers (which have no intrinsic representation) and _numerals_ which are the encodings of numbers.

Counterpoint: it doesn’t matter.

moate•3h ago
Pet Peeve: Pointless Pedantry.

Always Adore: Amazing Alliteration.

zzo38computer•8h ago
There are other five bit character sets as well, such as the 5-bit Baudot character set and the 5-bit Zork character set. You could also use variable bits characters, or other bases of numbers.

You can also use other decks, e.g. with tarot cards you will have 78 cards rather than only 52 cards, and can make a longer message.

Other comments on here had mention doing other things such as face-up vs face-down cards.

russellbeattie•7h ago
How about just assigning a number to every sentence in every language known to man, and using the absurdly huge number of deck combinations to identify them?

Impractical, but possible.

cwmoore•6h ago
225 bits
russellbeattie•2h ago
Oh! Duh, the article explicitly said that and I totally missed it as a number. I just thought, "That's only around 28 bytes... That's not a lot."

Thanks.

praptak•7h ago
Encoding with common objects was (and maybe still is) actually used in practice by actual spies, see CIA shoelace code.
ilcavero•4h ago
A while ago I made an interactive demonstration of how encoding with factoradic works https://ilcavero.github.io/ seems like I found someone else who thought it was a fun thing to demo