The Dallas Family Thrift Center, The Daily WTF, and Poor Data Quality
A slightly circuitous story about what I learned when a blockchain CEO pissed me off.
A few days ago, I posted a slightly annoyed post on LinkedIn, complaining about a company’s ads that I’d been repeatedly seeing.1 Normally, I let ads wash over me without a care, but these ads bugged me. In addition to the content looking like AI-generated nonsense, the ads themselves pop up multiple times a day and refuse to go away, despite my repeated attempts to block them using LinkedIn’s feckless ‘Report/Block ad’ feature. Also, the company’s website did not spark joy, and from my entirely non-legal perspective the site appeared to be disproportionately targeting people of a specific geographic region in what arguably might be seen by some as a cryptocurrency grift.2
When I originally posted my rant, I anticipated it would as is the case with most LI posts published late on Saturday night, be largely ignored.
What I did not expect was that I would receive an all-out assault of comments from the company in question, along with three identical ‘let’s connect’ requests from un-affiliated persons, all within minutes of one another, and a furious set of vague legal threats and accusations of being a fraudulent account from the company’s founder. In addition to demanding that I delete the post IMMEDIATLELY, the founder also wanted to know what evidence I had to make such claims in the first place.
Oh good, I thought to myself — a challenge!
Folks, here’s a little secret about me: I really, really, really, really like having any excuse to uncover dirt about people and organizations who set off my spidey-senses. Even the faintest assertion or whiff of threat gets me all excited to dig in. For many years, I was fortunate enough to actually get paid to uncover the mysteries of opaque corporate ownership networks, discover the identity of shadowy harassers, or figure out everything I could about the cretins who run creepy facial recognition sites like PimEyes. Needless to say, I’m rather good at this exercise, and it’s deeply enjoyable.
While I’m not paid to do this anymore, my overall unhealthy obsession enthusiasm still remains. So yeah, Mr. Founder Guy, I’ll bite.
Seven Hours Later…
At this point, you might be asking what the hell any of this has to do with the title of this post, and I promise, we’ll get there, but first I had to provide context as to why I spent the bank holiday weekend digging through the online orifices of a sprawling potential shitcoin empire.
One way to learn about a company is to become a user. Fortunately, the object of my obsession made that very easy to do! I have a few standard dummy accounts, with normal looking names and email addresses that I created many years ago. I also use the iconic Tommy Tutone ‘Jenny’ number when I need a bogus phone number for said synthetic accounts. The great thing about the Jenny number is that it works in every area code in the US, and elsewhere, at least those countries that adhere to a seven-digit phone number. Also, the number is largely not used as a real phone number by anyone, at least in the US. YMMV for other parts of the world.
Fun fact: If you’re ever pestered for a phone number for a store discount card, the Jenny number usually works.
When I set up my account, I created it using the Jenny number with a very high California area code value, 9XX, so it was 9XX-867-5309.
Once I created the account, I stumbled over into the settings page and noticed something very, very odd. Can you spot it?
Before I proceed: Please don’t call this number. Unlike the Jenny number it’s still a very live phone number that belongs to a business called the Dallas Family Thrift Center in Garland, TX. I’m sure they’re all very nice people, and get quite a few unwanted calls already for reasons that will become clear in this post.
So WTF is going on?
A search of the internets gave me my answer — specifically, a link to this 2012 Daily WTF post, where a user relayed the fact that their client kept seeing a strange bug in the contact field of their application. For multiple locations, the phone number displayed was identical — 214-748-3647.
There’s nothing magical about this number. There’s no secret ‘214-748-3647’ 80s rock ballad that we’ve all missed or anything. The answer relates to the limits of integer values on 32-bit systems and how poor coding choices lead to completely predictable data quality issues.
Specifically, the person in the 2012 Daily WTF post observed that if you set a numeric value like a phone number to be an integer on older systems, sometimes, computers get confused. If you give that computer a really high number (like 9,398,675,309), the computer says ‘I don’t know what that is, but here’s the highest integer value I do know!’ and substitutes the Dallas phone number value instead, which is the highest integer value addressable on a 32-bit system. 3
Whoever coded the dodgy site I was logging into did not read the Daily WTF post from 2012. Oops.
This is, of course, deeply hilarious, but it also made me realize that it’s probably something that is more common than we might realize. Who knows how many systems out there are running janky code on out-of-date systems, where the value for a phone number is set as an integer and not a string? Every phone number on those systems that’s higher than 214-748-3647 gets magically transported to being the Family Thrift Center, and a large chunk of the US population now lives in Dallas, as far as their phone number is concerned.
While I don’t think I’ll be losing sleep over whether my account on this questionable crypto site is correct or not, I can see this being a much bigger deal for organizations where having an accurate phone number matters. In addition to all the obvious accuracy questions that arise from a data protection perspective, there’s also the very real question of ensuring that there’s a way to keep in touch with one’s customer base. And if you don’t know your code is the culprit, no amount of rectification will make a difference.
Anyway, consider this an inadvertent, hilarious set of cautionary lessons. The first being: don’t give Carey a challenge unless you want her to go digging around and finding things. The second being: remember to type your phone/contact values as strings and not ints. For most of you, I hope neither of these lessons are applicable to your lives.
And with that, I’m going to finish the rest of this absolutely fabulous monster of a beer.
For reasons that I will explain, I deleted that post, and will not be sharing the specific details. But this will still be a wild ride regardless, I promise.
Of course, I am not implying said site is a shitcoin grift, because that might be seen as defamatory, but man, my spidey-sense was on high alert.
According to Husbot: “In an Int32, you have one bit for the sign (+/-) and then you have 31 bits for the number, which means you have 2^31 -1 values available for positive integers.” This number is equal to 2^31-1, which probably isn’t helpful for anyone other than nerds who like thinking in base 2 and programming shit.