Hacker News new | past | comments | ask | show | jobs | submit login

If we really aspire to be an information-driven culture who makes informed decisions about important topics, we really ought to curate lists like these down to actual informed discussions on the items in the list.

Printing out a list of "falsehoods" littered with personal opinions and calling them "demonstrable" [1] without a shred of evidence is not going to contribute to general knowledge. There may be some utility in getting me thinking, but for the most part I just find it self-aggrandizing. For what it's worth, I do find this [2] format much more helpful. I'd very much rather see valid counterexamples proving a sweeping statement false than yet another sweeping statement that happens to cover a few sweeping statements.

Of course, the above is my personal opinion and may not be shared by the rest of the community, but please can we do better than curating a list of lists we agree with?

[1] https://chiselapp.com/user/ttmrichter/repository/gng/doc/tru...

[2] https://www.mjt.me.uk/posts/falsehoods-programmers-believe-a...




Similarly, the famous list of falsehoods about names: http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-b...

Even aside from the politicized content, I found it jarring that this bounced between clear and 'demonstrable' statements and entries like "you do not need a postal address", which was just a Twitter link to some letter delivered without one. It's not how I'd prefer to see this stuff curated, either.


> There exists an algorithm which transforms names and can be reversed losslessly. (Yes, yes, you can do it if your algorithm returns the input. You get a gold star.)

What am I missing here? Any lossless compression algorithm works, even "string.reverse" would apply.


I think the implication is that a transformation won't be reversible if you don't know exactly what was applied?

Like, I've had the situation of seeing a poorly-marked name string and going "I think that's 'Last, First' formatting, but I'm really not certain..." Or if you do any formatting change you'll get bizarre problems like apostrophes becoming directional quotes.

But yes, the rule-as-written isn't right, and I'm not sure what was meant.


I think what is meant is, if you combine a first name and a last name, you can't break the full name back into first and last name. Because people have names with spaces in them, among other problems.


I think the challenge is to find a way to tranform the name so that it's still legible by a human.

Like transform "Mister" to "Mr"


I'm not sure I understand either. Any one-to-one function where the name falls under the inverse image of the range works (notably, stupid things like the identity mapping along with, you know, binary representations, etc).


What if the name has spaces in it? How do you differentiate reliably between a middle name and a name with spaces? It gets even worst when there may have been previous transforms, like forcing family name to be the last name.


The answer is; you don't.

Always ask the question you actually mean to ask.

Frequently someone's /name/ is part of a mailing ADDRESS. You can, and maybe should, limit this to a individual lines. However the only way to be SURE is to give an actual freeform multi-line input box, like a textarea.

If you want a string to greet someone as, ask for that, and store it separately.

If you want a title to display within a directory listing, accept that.

Generally, do not decompose things for your users, EXCEPT possibly client side while populating form elements for their convenience (and verification/correction).


Exactly that's the point of the falsehoods article on names. Now if I could just convince management...


Postal addressing is actually a very interesting topic; that statement is demonstrable. Many smaller towns internationally do not require an address line; all letters to the city are delivered to a central hub and distributed based on name/other information.


My complaint was with the wording and generalization. "Not everyone has/needs a postal address" is true, "you do not need a postal address" is not - living in a big city, I don't get mail that's even slightly mislabeled. And yes, that's a nitpick, but I was mostly objecting to a sweeping statement with a Twitter link that doesn't clarify much.

(As for the specific question, postal addressing is fascinating. Someone in my family has an unusable address with an alphanumeric house number, and Amazon won't ship to it. And in the last one of these threads, someone mentioned living in a country which uses standardized directions-from-landmark as a formal address!)


There's an apocryphal story of someone writing a letter and placing it in an envelope with a picture of Alfred E. Neuman on it and mailing it (with appropriate postage). It was delivered to Mad Magazine, the intended recipient.


Similarly, a letter supposedly addressed:

Hill

John

Mass

Which was delivered to John Underhill, Andover, Mass. Unlikely to be true, but a great story.


>Many smaller towns internationally do not require an address line

Citation needed. I've sent mail all over the world, and the only place I've seen where you can get away with that is Ireland. It's actually famous for this. Unless you're talking about some really backwater developing nations, every nation I've sent mail to does require an address line of some kind. However, in the UK, there are a lot of funny-looking addresses in the more rural areas. They have an address line, but it's really just the name of some hamlet or house or something, then they give the name of some farther-away but larger town, and finally the name of some main town/city where the mail is first routed. But they also have a detailed postal code that can route things by itself. Out of reasonably-developed nations, Ireland is the one that really stands out for having an antiquated postal system, but it does seem to work fine for them. It's also different and more modern for addresses within Dublin, where they do have a (very short) postal code.

The only other place where I've seen a place where you don't need a street or house number is for addresses at Kibbutzes in Israel.



And you illustrate the smug unhelpfulness of the falsehood lists at their worst.


Not only that, but a fair number of them are actually true statements (e.g. People have names). I can only assume someone got overzealous trying to prevent assumptions about other cultures, but I still don't really understand the train of though that lead to their inclusion.


I suppose that could be referring to "John/Jane Doe" situations - when someone turns up who may have a name, but you have no way of ascertaining it (because they're not carrying ID, and are unresponsive, dead, or otherwise unable to tell you themselves). Not really a relevant concern for most programming situations, but it could catch you out if you're writing software for medical/police reports, for instance.

Or, for a rarer subcase where the person genuinely has no name at all - consider "feral children": https://en.wikipedia.org/wiki/Feral_child


This is specific case of the more general flaw in a lot of design work - "I have a collection of things, these things always have an X with property Y, so I'll just organize/key them that way".

This works great until property Y is violated... or until you run into one without "an X". Most times you are better off to just start with unique identifiers and avoid breaking logic.


The most common example is actually scandinavian unbabtised babies. It's quite common to keep the name secret until the big reveal in the church when the child is several months old. I believe that here in denmark you aren't required by law to submit a name until the child is 6 months old.


you can go past 6 months without naming your child but you are fined, I can't remember at which point the child will be given a name if you won't provide one.

Also of course if you give your child a name that is not recognized as a name by the name register there is a process for okaying that name, so in that case your child can have a name in the family but not an official governmental name yet.


It is fairly common for newborn babies not to have names, which can cause issues with medical record systems. In most cases a workaround is used, such as "Baby {{Lastname}}". In the US, I suppose, the baby would at least have a last name, so not entirely nameless.


Agree with everything except the last name part. A baby isn't born with a last name and there's no obligation for a baby to have the same last name as either parent.

Our daughter was "Baby Girl <Mother's Last Name>" in the EMR system for a few days even though no part of that was her name and that isn't the last name she ended up with.


That's also an example where trying to model the strict reality (having no known name) might be worse than just using a workaround in a simpler model. As long as system acknowledges that different people can have the same name and duplicate profiles may be found and need to be merged, John/Jane Doe and Baby <Lastname> seem perfectly fine to me.


Only if you're sure you can treat the unnamed the same as the named. If there's logic anywhere in the system that treats the unnamed babies differently (e.g. delaying filing for a birth certificate) that would be a problem if and when someone actually does want their child's first name to be "Baby"


> That's also an example where trying to model the strict reality (having no known name) might be worse than just using a workaround in a simpler model.

A bit of an orthogonal example to the thread, but I ran into an issue like that, with a solution that worked just like you described. I was using msgpack in Python 3 to send data to the browser in JSON format.

msgpack in Python 3 decodes into bytes, as (hopefully) expected by Python 3 users.

Except the data was somewhat arbitrary in terms of how it was organized or what was included (but was predictable in type), so decoding it was a bit of a pain. The problem of course was that my strings were wrapped in b'', and that was being sent to the browser, causing the JSON parsing in the browser to fail.

My first two attempts were recursive algorithms that would try and decode strings and skip everything else (we only worked with strings and numbers, or lists of strings and numbers, hence "predictable in type"). Both times it almost worked, but didn't. Even with predictable types of data, I had to try and cover a number of edge cases.

The solution that ended up working 100% of the time in my particular case was just using regex to remove the occurrences of b'' from a string version the object, then send that as JSON. Looked like an ugly hack, and probably was, but it damn sure worked like a charm. It was much easier to just ensure I built a valid dictionary before encoding it with msgpack rather than try and "properly" decode all the strings after decoding it with msgpack.


You could subclass the json.JSONEncoder class (and implement the default method) to decode bytes objects, along the lines of the example in the documentation:

https://docs.python.org/3.5/library/json.html


Does the baby have a last name, though? Think about a baby born to parents with different last names. The baby may take the father's last name, the mother's last name, one of at least two different hyphenations, no last name (maybe they think their child will be famous), or an arbitrary last name they make up. And that's assuming they're just plain vanilla "Americans" with no strong ethnic reason for an alternate naming scheme...


It's a placeholder until a name is chosen. It is temporary and expected to be revised. At the hospital I know, the mother's (who carried the baby) full name is selected, e.g. "Baby Jane Doe." Notice no name transformation is required so it generalizes. I don't know what is used in the case of a surrogate mother.

If parents get offended by this straightforward default-naming algorithm, the recommended workaround is to name the baby.


So, now your little ad-hoc substitute-naming scheme has legal ramifications. Good luck getting this to play along with actual letter of the law (at $location1, not to mention $anotherlocation2).


It's not my naming scheme, it's what the hospital I know uses. Can you explain the legal ramifications you are concerned about? The baby does not receive a SSN until it is named by the parents. If the parents were to die before the baby is named, the temporary name used "in the system" doesn't magically become a legal name.


Sorry, I have misunderstood as "this is what I would do." I suppose that's a process descended from the local legal framework, then - as you say, SSN is assigned after name, and the name has some flag meaning "temporary". I would assume there's some handling in place for that eventuality.

(I have seen a different protocol: state ID number is assigned after birth, parents choose name independently of the process, the two are only linked ex post)


How do you think having an identity separate from name make things worse? Any concrete examples?


The assumption you've just made is exactly why the list of falsehoods needs to exist.


What assumption are you referring to?


Name one person who doesn't have a name.


Well I'm not trying to troll you or anything but my friends haven't named their 2 day old baby yet. That's a person, right?


And apparently you can, in some jurisdictions, re-name your baby within a few days of birth, replacing the original name (it's not even considered a rename - it voids the previous naming, as if it had never happened).


Artist-Names are possible. In germany, atleast, you can carry it on your Passport with ur real Name.


That's one of my concerns too.

We're currently in Phase 1 of the project. Which is all about collecting, in the wild, instances of this trending writing style.

Now if it get traction and grows out of a gimmick, and if Falsehoods articles become a new literary form in its own right, then maybe we'll have enough resources in the community to start Phase 2. Which might see more curation happens, as well as writing guidelines and add more structure.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: