It is your tax ID number, but a lot of companies use it as a secret identifier for you since they are (supposed) to be unique. So if you call your bank and they need to prove who they are talking to they ask for it, for instance.
You would think that lenders should be on the hook for handing out money to the wrong person, but they’ve framed accepting uniquely identifying personal information like ssn, or date of birth with postal code, as conducting business with an entire identity that has been misappropriated.
These unique personally identifying bits of information are not private keys.
Private keys on the other hand can remain secret even when someone is confirming their validity. To oversimplify a little, the way it works is that the private key is input into a one-way algorithm that generates an output they check against their saved values. If the output matches twice then they know you have the same key as the one you used in the past. They cannot used the output of a one-way algorithm to discover what the input was that generated said output.
Ugh. It truncated the 19xx from my birth year. I was initially pleasantly surprised to get a 6 digit result for an 8 digit input... but alas I'm not special, in terms of pi birthday compression ratio ;)
Edit:
- "enter date in any format"
- Okay, interesting... I enter day-year-month
- "there's something wrong with the date you entered!"
Well, there is something wrong with that format :), it's not sorted either ascending or descending. :) But yeah, nonsense text on their part, they are clearly parsing it.
I'm definitely a systems programmer, not a UI person. Suggestions or questions welcome, of course, but I usually only spend a day per year on the pi searcher. I re-wrote it in rust last year for fun, though.
Out of curiosity, do you make a lot of money from the ads? I find small niche sites like this to be somewhat less nice to use because of the ads, especially on mobile where they take up lots of limited real estate. And it seems to me that they can’t be generating that much money given the niche topic. But maybe I’m wrong!
No. I should prune them, honestly. I earn about $100 / month on them; I played around with it at some point mostly to understand the advertising ecosystem. Half of the links to Amazon are broken at this point. My hosting costs are about $20 per month now thanks to optimization to the search engine and offloading larger objects and pi fragments to cloudflare. (Used to be higher)
I do want the site to be at least "self-maintaining", though.
> I'm frequently asked where people can get such a ridiculously large amount of pi. Be warned that 50 million digits of pi takes up 50 megabytes. This can take up to 4 hours to download with a 28.8k modem!
I love the old internet. Users gave a shit about other users.
For the digits 0-9, there are stretches 8 (i.e. 11111111) long for all the digits, but 6, 7, and 8 have 9 digit stretches (which given the property that a 9 digit random number would be in there at ~9.5%, is an anomaly!).
12345678 exists, but not 123456789. Similarly counting backward, but 876543210 exists. 012345678 does not.
And, yes, my birthday is in there, both at MMDDYYYY and YYYYMMDD.
to get a checksum ("ck") that it then passes to the Pi searcher in the query string, which appears to be the last 8 digits of the MD5 checksum of the date, e.g.
A friend of mine once made the argument to me that software patents are nonsense because if pi is normal[0], then your source code, suitably encoded, appears somewhere in pi.
I don't know that that's a good argument, but it's a fun one.
[0] and while we don't know for sure signs point to yes
It's a fun argument, but using it in earnest is also committing a category error. IP laws care not just about the bits, but also about their provenance (the famous "colour of your bits"). That is, the code in question may exist somewhere in pi, but it's not where you actually got it from.
(Also, even if the code exists somewhere in pi, finding it there requires more effort than coming up with it in the first place. There are interesting mathematical/philosophical consequences of this reasoning.)
[arbitrary number] is currently limited to somewhere in the low billions, which is unlikely to be of much help, even for finding the ASCII representation of "Hello, World!".
[Arbitrary number] is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road, but that's just peanuts to [arbitrary number].
Assuming the binary digits of π are randomly distributed[0], any given n-bit binary sequence is going to come up with a probability of 1-in-2^n at any given point in the whole thing. A 1 kB file of any kind, app or data, is already one in 1-in-2^(8*(2^10))).
The Hitch Hiker's Guide to the Galaxy says that if you hold a lungful of air you can survive in the total vacuum of space for about thirty seconds. However it goes on to say that what with space being the mind boggling size it is the chances of getting picked up by another ship within those thirty seconds are two to the power of two hundred and sixty-seven thousand seven hundred and nine to one against.
This probability corresponds to a file just fractionally smaller than 33464 bytes.
For scale: The universe can have performed no more than 10^120 ops on 10^90 bits[1] (~2^399 and ~2^299 respectively), meaning that no IP-protected content over 299 bits in length is likely to be found even when the entire universe is dedicated to this task, and even if your algorithm for finding extra digits of π is efficient enough that you're not limited by it.
[0] is this proven for any value of "random"? I genuinely don't know.
It basically comes down to the million monkeys on a million typewriters argument. Any work of art or creation could be created randomly, given an infinity. Pi is just a sort of random number generator.
Although every PRNG must eventually repeat, while pi is mathematically proven to never repeat. And real-life RNGs are fundamentally limited by hardware, no? How long would it take to pull multiple terabytes off one? They're not meant for it.
Must it? What if you use the seed as an offset into pi, and then just return digits of pi from that point onwards?
(of course that will eventually run into a problem with the state of the RNG exceeding available memory, so it will ultimately fail on resource exhaustion, but it won't repeat)
I think the problem is calculating pi must be done in series, so you can't really get much further than anyone else. contrast that to a hypothetical situation where you could effortlessly start calculating at the nth position of pi. Then you'd have a rock-solid RNG where your real-world entropy source could repesent each digit of the index, so i.e. you get a 500 digit number, then start reciting pi from that position, now you're cooking with gas. Meaning your search space to crack the RNG would be about as difficult as cracking AES-256. but anyway I'm talking above my paygrade here, so no guarantees :)
> I think the problem is calculating pi must be done in series, so you can't really get much further than anyone else. contrast that to a hypothetical situation where you could effortlessly start calculating at the nth position of pi.
I wonder if there's an irrational number, not necessarily pi, whose computation is efficient enough that modern computers could find relatively short pieces of protected data in its digits, for example the AACS encryption key.
In a similar vein, the corecursive podcast[0] covered the Sloot Digital Coding System[1] in which it is hypothesized that he attempted something very similar but for video. Unfortunately, it seemed like overestimated his ability to produce this and resorted to smoke and mirrors for demos. It’s a facinating story that reads like a tale of industrial espionage.
It’s a common logical error. Infinity doesn’t mean all possibilities. An infinite universe doesn’t have infinite copies of someone. Pi doesn’t have everyone’s source code. There an infinite number of infinite random digit series that don’t contain anyone’s source code.
Since pi never repeats it should actually contain any sequence of numbers possible though, right? So if you encode your source code as number thet argument should hold up.
Since pi never repeats it should actually contain any sequence of numbers possible though, right?
Simple counterexample: 0.101001000100001... which is 1 followed by one 0, then 1 followed by two 0s, then 1 followed by three 0s, and so on. It never repeats, but "11" will never appear.
But if my source code has length n in binary, and I had an infinite number of monkeys typing on an infinite number of terminals, they could find it in pi or any similar digit sequence within
(((n * n) * n) * n)! years. Finding a jpeg of the Titanic sinking autographed by the captain might take a little longer, but Fox News is working on that.
> In mathematics, a real number is said to be simply normal in an integer base b[1] if its infinite sequence of digits is *distributed uniformly* in the sense that each of the b digit values has the same natural density 1/b. A number is said to be normal in base b if, for every positive integer n, all possible strings n digits long have density b^−n.
> An infinite universe doesn’t have infinite copies of someone.
Depends on the uniformity of matter and energy and physical laws in the universe. If matter and energy are uniformly distributed with no large scale variation, and the laws of physics are constant then eventually somewhere in the universe you’d be able to find an Earth arbitrarily close to ours.
The final piece to socially engineer with an online quiz is the Zip Code, unless the vendor turns up address verification then you need the house number or box number too.
The fact that the string "12345678" occurs only once in the first 200M digits already gives an impression of the amount of information you may find/store there.
> We may collect both Personal Information (PI) and non-Personal Information (non-PI) about you through your experience on our websites, from your use of our services and products and via other voluntary contact with you (collectively "Services").
> The PI we collect through our Services primarily consists of information you submit to us. Because participation in our Services is voluntary, you have a choice of whether or not to disclose such information. The following are categories of PI we have collected in the past 12 months:
> Identifiers
> Examples include: a real name, alias, postal address, unique personal identifier, online identifier, Internet Protocol address, email address, account name, Social Security number, driver's license number, passport number or other similar identifiers
It's not always a joke. There's dozens if not hundreds of people who believe they're cracked the compression problem by "just finding the offset of your data into pi". It is a recurring problem online: https://duckduckgo.com/?q=compress+pi+offset (DDG actually did better than Google here which is why I link that), and sometimes explaining to the proposer why this doesn't work is quite difficult. Sometimes you end up reduced to "Well, just implement it then if it's so easy and amazing."
(Fortunately, pi compression is not particularly amenable to one of the other basic "tricks" of fake compression algorithms, which is failing to count filenames or other metadata as part of the compressed data set, if you use them in the decompression algorithm. Pi "compression" is, in practice, a much better data expansion algorithm than a decompression algorithm. So you don't generally have to deal with having to explain how they've still failed even though their file sizes seem smaller.)
> Sometimes you end up reduced to "Well, just implement it then if it's so easy and amazing."
This should be the standard answer, along with some probing questions like:
- "So if you can always compress data, what happens when you compress the compressed data over and over? Surely you see this can't always work or everything could be compressed down to 1 bit?"
- "Do you realize that there are 2^N strings with N bits, but fewer strings with less than N bits? Surely you don't think you can always represent N bits in fewer than N bits?" (i.e. something along the lines of the pigeonhole principle)
If that doesn't convince them or they're unwilling to think through those fundamental questions or the implementation, it's a hopeless case that is best left alone.
I actually tried to link to the comp.compression FAQ but was disappointed that it didn't directly address pi compression, despite its popularity. It does address the pigeonhole principle though.
I wouldn't have an issue with sharing information with advertisers if it were solely for promotional purposes. However, the concerning part is that all data is up for grabs to anyone willing to pay for it, including scammers and the like. It's somewhat absurd that we have to protect something as simple as our birthdays, which should ideally be just harmless numbers with no potential for misuse. Unfortunately, the actual situation is far from reassuring, the surveillance nature of the internet is slowly taking shape. Sometimes I wonder if the digital identity problem could ever be solved and whether that will usher us under complete surveillance.
Interesting that it formats the results differently based on the input. For example, "June 12 1980" results in "6 12 80", while "1980-06-12" returns "80 06 12". I was kind of hoping to find the "YYYYMMDD" value regardless of input, but ah well.
The link in sibling comment by brynbryn [0] is a much better (not to mention faster) implementation IMO.
Why does this upset you? The algorithm will be something like:
) Consider 1st billion digits of pi
) Search your exact date string
) If it doesn't hit, try reformatting and search again until something hits
) Return
If you're suggesting they should replace the 'try reformatting' step with 'try the next billion digits', then the complexity of calculating digits increases as you go so this is going to become impractical in any language, not just Wolfram
Not to mention grep that sometimes just doesn't work and returns you an entirely different result, or grep that just has blatantly wrong documentation ("any format")
Back in my youth I wanted a tattoo of different numbers swirling around my right arm and over my shoulder onto my back. Pi would have been the backbone of the tattoo.
In the different numbers would have been my birth-minute represented in decimal unix time, hex, binary, etc. Then different date systems from around the world, Islamic, Hebrew, Devanagari, Chinese Lunar, Japanese, and Mayan long count. I gave up because I couldn't find enough people that I trusted to verify that the different language date strings were correct.
Amusing point. I concede, this format does have a more rational order.
Your iconoclasm has broken my reverential mnemonic, but for honorable purposes.
However, I will never have baked beans for breakfast, handle spotted dick, omit the phonetic k from my schedule, nor other things that would simply be going too far, however rational they may be.
Trinity College, Dublin was founded on the 3rd. I would say that's a rounding error, but at that time, pi was known to at least 9 digits (15 would be reached in 1593).
For people who's first/last name letters fall within a band of ten consequitive letters of the alphabet (any alphabet, despite its origins Pi is surely multi-lingual), one can use the same algorithm to find themselves somewhere in Pi.
For the rest of us it is a bit trickier but should still work: use two consequtive digits (00-99) and a modulo function that loops over an alphabet (and possibly discards some padded values as not having a map to a letter).
140 comments
[ 3.3 ms ] story [ 195 ms ] threadNo, that is not a typo.
Yes, it's exactly as stupid as it sounds.
You would think that lenders should be on the hook for handing out money to the wrong person, but they’ve framed accepting uniquely identifying personal information like ssn, or date of birth with postal code, as conducting business with an entire identity that has been misappropriated.
Private keys on the other hand can remain secret even when someone is confirming their validity. To oversimplify a little, the way it works is that the private key is input into a one-way algorithm that generates an output they check against their saved values. If the output matches twice then they know you have the same key as the one you used in the past. They cannot used the output of a one-way algorithm to discover what the input was that generated said output.
Edit:
- "enter date in any format"
- Okay, interesting... I enter day-year-month
- "there's something wrong with the date you entered!"
Lol
~167 millionth digit for me.
Also, very interesting how it works (https://www.angio.net/pi/how.html)
I'm definitely a systems programmer, not a UI person. Suggestions or questions welcome, of course, but I usually only spend a day per year on the pi searcher. I re-wrote it in rust last year for fun, though.
I do want the site to be at least "self-maintaining", though.
Maybe you can try to setup a custom t-shirt with the desired number in the Pi sequence, like the original article has.
Thanks again for the site!
And very welcome. It turns 25 this year, which is really weird - it's older than my students! grins
> I'm frequently asked where people can get such a ridiculously large amount of pi. Be warned that 50 million digits of pi takes up 50 megabytes. This can take up to 4 hours to download with a 28.8k modem!
I love the old internet. Users gave a shit about other users.
https://www.angio.net/pi/digits.html
Longest "Pi" sequence found: 31415926
For the digits 0-9, there are stretches 8 (i.e. 11111111) long for all the digits, but 6, 7, and 8 have 9 digit stretches (which given the property that a 9 digit random number would be in there at ~9.5%, is an anomaly!).
12345678 exists, but not 123456789. Similarly counting backward, but 876543210 exists. 012345678 does not.
And, yes, my birthday is in there, both at MMDDYYYY and YYYYMMDD.
Anyway, silly amount of fun.
'Enter your birthdate (or other date) in any format'
It even pings this script first
https://www.wolframcloud.com/objects/user-ca9f3e2e-1c45-4ace...
to get a checksum ("ck") that it then passes to the Pi searcher in the query string, which appears to be the last 8 digits of the MD5 checksum of the date, e.g.
Unfortunately passing invalid dates seem to once again crash the image generator that presents the results.Valid:
https://www.wolframcloud.com/objects/microsites/mypiday/pida...
Invalid:
https://www.wolframcloud.com/objects/microsites/mypiday/pida...
In all seriousness, why isn't this just "find any number in pi"?
I don't know that that's a good argument, but it's a fun one.
[0] and while we don't know for sure signs point to yes
(Also, even if the code exists somewhere in pi, finding it there requires more effort than coming up with it in the first place. There are interesting mathematical/philosophical consequences of this reasoning.)
What if you have access to [enter arbitrary number] computers?
Assuming the binary digits of π are randomly distributed[0], any given n-bit binary sequence is going to come up with a probability of 1-in-2^n at any given point in the whole thing. A 1 kB file of any kind, app or data, is already one in 1-in-2^(8*(2^10))).
The Hitch Hiker's Guide to the Galaxy says that if you hold a lungful of air you can survive in the total vacuum of space for about thirty seconds. However it goes on to say that what with space being the mind boggling size it is the chances of getting picked up by another ship within those thirty seconds are two to the power of two hundred and sixty-seven thousand seven hundred and nine to one against.
This probability corresponds to a file just fractionally smaller than 33464 bytes.
For scale: The universe can have performed no more than 10^120 ops on 10^90 bits[1] (~2^399 and ~2^299 respectively), meaning that no IP-protected content over 299 bits in length is likely to be found even when the entire universe is dedicated to this task, and even if your algorithm for finding extra digits of π is efficient enough that you're not limited by it.
[0] is this proven for any value of "random"? I genuinely don't know.
[1] https://arxiv.org/abs/quant-ph/0110141
(of course that will eventually run into a problem with the state of the RNG exceeding available memory, so it will ultimately fail on resource exhaustion, but it won't repeat)
There is this: https://en.m.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80... , so you can calculate later digits of pi without the earlier ones.
[0]: https://corecursive.com/sloot-digital-coding-system/
[1]: https://en.m.wikipedia.org/wiki/Sloot_Digital_Coding_System
Simple counterexample: 0.101001000100001... which is 1 followed by one 0, then 1 followed by two 0s, then 1 followed by three 0s, and so on. It never repeats, but "11" will never appear.
"Almost all" real numbers do contain all finite sequences, but it hasn't been proven for pi (https://en.wikipedia.org/wiki/Normal_number).
1. https://en.wikipedia.org/wiki/Normal_number
This isn't actually proven though, as far as I know.
There are plenty of infinite non-repeating sequences that we know that don't contain a given sequence. (E.g. 0.1101001000100001000001...)
But pi is not among them. It might very well have everyone's source code. It also might not.
Depends on the uniformity of matter and energy and physical laws in the universe. If matter and energy are uniformly distributed with no large scale variation, and the laws of physics are constant then eventually somewhere in the universe you’d be able to find an Earth arbitrarily close to ours.
> We may collect both Personal Information (PI) and non-Personal Information (non-PI) about you through your experience on our websites, from your use of our services and products and via other voluntary contact with you (collectively "Services").
> The PI we collect through our Services primarily consists of information you submit to us. Because participation in our Services is voluntary, you have a choice of whether or not to disclose such information. The following are categories of PI we have collected in the past 12 months:
> Identifiers
> Examples include: a real name, alias, postal address, unique personal identifier, online identifier, Internet Protocol address, email address, account name, Social Security number, driver's license number, passport number or other similar identifiers
Now add birth date to the list.
Use the stick as long term storage for your code.
(Fortunately, pi compression is not particularly amenable to one of the other basic "tricks" of fake compression algorithms, which is failing to count filenames or other metadata as part of the compressed data set, if you use them in the decompression algorithm. Pi "compression" is, in practice, a much better data expansion algorithm than a decompression algorithm. So you don't generally have to deal with having to explain how they've still failed even though their file sizes seem smaller.)
This should be the standard answer, along with some probing questions like:
- "So if you can always compress data, what happens when you compress the compressed data over and over? Surely you see this can't always work or everything could be compressed down to 1 bit?"
- "Do you realize that there are 2^N strings with N bits, but fewer strings with less than N bits? Surely you don't think you can always represent N bits in fewer than N bits?" (i.e. something along the lines of the pigeonhole principle)
If that doesn't convince them or they're unwilling to think through those fundamental questions or the implementation, it's a hopeless case that is best left alone.
http://www.faqs.org/faqs/compression-faq/part1/
The link in sibling comment by brynbryn [0] is a much better (not to mention faster) implementation IMO.
0: https://news.ycombinator.com/item?id=37955434
Some results are without the first 2 year digits.
Some results are plain bogus, a 2012-03-XX date returned a 2012-10 number (without the day component and wrong month).
If this is an ad for the power of Wolfram Alpha it is very poorly executed.
) Consider 1st billion digits of pi ) Search your exact date string ) If it doesn't hit, try reformatting and search again until something hits ) Return
If you're suggesting they should replace the 'try reformatting' step with 'try the next billion digits', then the complexity of calculating digits increases as you go so this is going to become impractical in any language, not just Wolfram
Of course the minimal index i(w) at which digit sequence w appears is about as long as w itself...
[1] https://en.wikipedia.org/wiki/Champernowne_constant
n * dec - (10^(n-1)-1) `div` 9 + 1 - 10^(n-1)
In the different numbers would have been my birth-minute represented in decimal unix time, hex, binary, etc. Then different date systems from around the world, Islamic, Hebrew, Devanagari, Chinese Lunar, Japanese, and Mayan long count. I gave up because I couldn't find enough people that I trusted to verify that the different language date strings were correct.
Your iconoclasm has broken my reverential mnemonic, but for honorable purposes.
However, I will never have baked beans for breakfast, handle spotted dick, omit the phonetic k from my schedule, nor other things that would simply be going too far, however rational they may be.
Did anything interesting happen on 3/14/1592?
For the rest of us it is a bit trickier but should still work: use two consequtive digits (00-99) and a modulo function that loops over an alphabet (and possibly discards some padded values as not having a map to a letter).
now would you mind telling me the name of your first pet?
also what’s your mother’s maiden name?
Joke's on you (until I lose the answers, then it's on me)
πfs – A data-free filesystem (github.com/philipl)
155 points by zapdrive 4 months ago | 108 comments
https://news.ycombinator.com/item?id=36357466