which definitely has the problem you describe. The second change was
.title a { word-break: break-word; }
What's not clear to me is whether you're seeing the latter, which means things are currently broken, or if you were seeing a cached version of the css. Can you double check that? If break-word is still bad, I'll take the whole thing out.
Not to answer for the parent, but it finally looks good for me now, on iOS Safari. Normal titles look normal, and this one gets broken so it doesn't widen the page.
Also, in case you're wondering why it's not symmetrical (mother's siblings vs father's sisters) is because the complementary set is 堂妹 (younger father's bothers' daughter), and your 堂妹's family name is the same as you.
堂妹's literal translation is "younger sisters living in the same hall" make makes sense when considering how people live together back in the days.
表妹's literal translation is "remote/distant/foreign younger sisters" which you might see them less often in the old days.
Hmm, it might have made more sense to just use the Latin approximations for the Mandarin pronunication of those Chinese ideograms here. So e.g. CNLabelContactRelationBiaoMei.
I agree, just like exotic words that are wildly accepted (eg. Umami, Zen), they're handy.
Though, people might not know the word Biaomei at all and get confused by the codebase: people know the word "Umami" because Japanese food is popular; people know the word "Mujahideen" because they come from political events and news. I wonder what would lead them to Biaomei...
If I was writing this code, I would have put something like this in the doc comment:
> The label for the familial relationship expressed by the Mandarin term biao mei, meaning the contact's mother’s sibling’s younger daughter or the contact's father’s sister’s younger daughter. This label variable will also store the name for that concept in Chinese language varieties other than Mandarin. If the identical concept is found in a non-Chinese culture, this label variable will store the name for that concept in the language of that culture.
If they looked up "CNLabelContactRelationBiaoMei" in the documentation and saw the above description, I don't think anyone would be confused.
At a certain point, it makes more sense to have a family tree diagram with alphanumeric labels for every possible relation cardinality referenced to self, and just encode those as an enum like ContactRelationA4, ContactRelationB1, etc. And just point people to the diagram.
The Apple way is just long, impossible to parse (whose Father?) and in general pushes a lot of code smell buttons for me ("not sure what it is, but I'm dang sure it's rotten")
YoungerFemaleCousinWithDifferentSurname is encoding a lot of assumptions about how familial relationships work in Western European/American cultures. Looking at all the possible values in that enum to me doesn't scream of a massive code smell, but instead of years of care and attention being given to proper localisation for often wildly different cultures.
I suspect the relationship is not labeled differently if the surnames are identical by coincidence. (There was once a taboo against two people of the same surname marrying, but it can happen today.)
Looks like someone beat me to this (2019): https://news.ycombinator.com/item?id=20352473, the reply to it perhaps gets to the reason why. Something about Objective C's enums being different.
What I find interesting here is that this is an english translation of a chinese lineage - a phrase like "uncle" or "second cousin". We have nothing remotely like this - because we don't have those concepts embedded in our society.
The fact that Mandarin has these terms but English not only does not have but that we find so ... outrageous it gets on HN, is deeply indicative - family matters so much more that it's affecting the language - and that in turn forces kids to learn the words and thus keep their lineage in mind.
As a shallow westerner who hardly talks to anyone outside his nuclear family I may be less "restricted" by my family but I am missing quite a lot.
(No I am not trying to make some sweeping comments about culture, or government administrations or "the modern world". )
>family matters so much more that it's affecting the language
I think it's more accurate to say "family _hierarchy_ matters so much more" in Chinese language.
Different cultures emphasize different things.
An example in the opposite direction: Western families would have more verbal exchanges of "I love you mom." and "I love you too." -- compared to traditional Asian families. However, you really can't extrapolate from that language usage to say "family matters more" in America.
> The fact that Mandarin has these terms but English not only does not have but that we find so ... outrageous it gets on HN, is deeply indicative
I think the thing that makes it "outrageous" is the fact that its name is such a mouthful. If they'd simply called it CNLabelContactRelationBiaoMei (as some other comments have suggested) no one be so "outraged".
Most people seem to be okay with the idea that other cultures can have concepts which are difficult to express in English without using a lot of words. But using all those words, as opposed to just borrowing the foreign term, is an odd choice.
"outrageous" is an inappropriate word. I mean the large number of words conjoined (very surprising to see in English, perhaps less in say German). It's not meant as a perjorative.
It's a specific cousin. I have four cousins, three female and one male (Danish actually have different words for female and male cousins), this label can refer to only ONE of my four cousins.
Right. To be more specific, this particular term conveys three things about the cousin:
- relative age (this cousin is younger than you)
- gender (this cousin is female)
- and... an archaic notion of whether this cousin is related to you via a female blood relative (either your mother's sibling, or your father's sister).
Maybe it's just part of the language now, and it will sound weird if you don't make that distinction?
English has similar issues, in that it has two words: girlfriend and boyfriend, which is a bit old fashion, especially when you come from a language that doesn't make that distinction. On the other hand, what would you replace those two words with?
I'm commenting that the terminology dates back to familial structures and housing arrangements that largely no longer exist. Hence, archaic (since it's a historical artifact).
As alluded to by other commenters: in China, women would be "married out" such that they would live with their husbands' families. As a result, the notion of "younger sister from outside" versus "younger sister down the hall" arose.
That distinction doesn't exist if the newlywed couple doesn't move in with either of their parents.
...
On the note of your question: English also has husband/wife, widow/widower, fiancé/fiancée (okay those are technically French loanwords). In the husband/wife scenario, we might use "spouse". And I still find "partner" a bit odd when it's used to refer to heterosexual couples, even if it's perfectly applicable.
Is the more specialized terminology entirely irrelevant in either case (English or Chinese)? No, it conveys more information. But there are certainly situations where it's just not applicable (e.g. if one or both entities identify as nonbinary).
(and as an aside, it's a distinction that makes the language harder to learn with all of its nuances -- my father has no sisters, so I grew up assuming that it was just "which parent's side is the cousin on?")
Generalized sufficiently, all of these words mean "relative".
Consider the weakest relationship between words and thoughts: the words that you habitually use guide/reflect how you think of the world.
If the social relationship of "elder brother's husband" is different for you than "younger wife's sister" in some generalizable way, then words like these are meaningful to you. If you don't have any preconceived notion that you should be more polite or defer to one of those more than to the other, maybe they are just labels.
Cultures and families are different. When they adopt words, they usually have meanings.
I can't help but think we'd be better off using tree navigation operators and gender as types. Li(ft), do(wn), si(deways), like lisp's car, cdr, caaadr, etc.. And adding m(ale) and fe(male) at the end of the word as types.
E.g. paternal uncle would be lim-sim. Maternal grandmother's son's daughter: life-life-dom-dofe.
Utterly pointless and ridiculous but so much more sensible than having a dozen different words which contain less information than what we care about.
Why not? Where someone has more than one relationship to you, you can either mention both or the closer one, as we do in English. "This is my son" (or son and nephew). "Cletus is Hank's father" (or father and grandfather). The suggested tree navigation operators don't rely on the structure being strictly a tree.
Look, this class name is pain in the eyes to read, let alone understand, but even I could immediately tell it isn't about Java because the name does not end with at least three design patterns.
CNLabelContactRelationYoungerCousinMothersSiblingsDaughterOrFathersSistersDaughterSingletonStrategyFactory would be the Java equivalent. Has anyone checked Android's codebase?
Woah man, do you expose your SingletonStrategyFactory-s to the public? That's risky API design, I would recommend you at least put it behind a Manager, or ideally a ManagerDependencyFactory.
If you're a SeriousEnterpriseProgrammer, you also need a CNLabelContactRelationYoungerCousinMothersSiblingsDaughterOrFathersSistersDaughterSingletonStrategyFactoryProxy and CNLabelContactRelationYoungerCousinMothersSiblingsDaughterOrFathersSistersDaughterSingletonStrategyFactoryProxyBuilder.
As someone in big fintech who has to deal with regulated release processes, I would like to tip my hat to "oh that's a godd suggestion from one of our users - let's try that out on our front page as soon as I can commit it".
Edit: done now. I can't shake the feeling that we've been through all this before, and that's why I ended up resorting to whitespace tricks in https://news.ycombinator.com/item?id=20352144. But let's wait and see what's broken now...
Unfortunately this still makes it a worse experience for "not crazy long" title words. Now it wraps all words if they hit the line break, eg. On the front page right now I see:
Demo of a WAM Prolog Implementation in Py
thon
Which makes it harder to read. The previous behavior would write this like:
I might be wrong but I think dang does monitor his name. I have mentioned him a few times and he swings by. Maybe just coincidence. I did email him too.
Possibly because it borked the layout, possibly because it's not necessarily a substantive post. This exact type of submission (long unbroken class name from some codebase somewhere) has been made a number of times in the past too—little is new!
The only thing that I dislike the fast, web version of HN is this desktop layout on mobile, but HN have an API and 100's of mobile clients which work exceptionally well, and a mobile client for HN can be written in hours.
The API for HN is absolute garbage (they admit to it being so too). It's also a read only API and doesn't support actions. My apps rely on scraping the page and then performing actions such as voting, commenting, favouriting, submitting posts etc.
Read-onlyness was a design choice at the time and still has its place. The main problem with the API is that it's too low-level—you have to do a bunch of work to reconstruct what actually shows up on an HN page. The next version of the HN API will give a simple JSON representation of each HN URL. Initially it will still be read-only though; then we'll see about whether to extend it to writes.
Sorry, didn't mean admitting to "absolute garbage" in a literal way. Mostly referring to statement such as:
> I'm not saying this to defend it - It's not the ideal public API, but it's the one we could release in the time we had. While awkward, it's possible to implement most of HN using it.
My words may have been a bit too harsh but I still think I have a point. The only thing I could find use of the API was to get the user's details (karma, description, date created etc). Other than that, I ended up relying on scraping.
Unfortunately, unless the JSON api offers write access, it won't be of much use for my app's use cases. Lets just hope the JSON Api isn't going to break anything major in the HTML of the site and there aren't any major re-designs of the site in the pipeline.
Someone else posted the chart for these terms, https://ac-journal.org/journal/vol3/Iss3/spec1/huang_jia.htm..., but I'm guessing the reasoning is probably very similar to patrilineal naming in many Western cultures, where children take the last name of their father. Using that criteria, another name for this relation would be "Female cousin who is younger than you, with a different last name". That is, only your father's brothers' kids will have the same last name as you. Your mother's siblings (brothers or sisters) and your father's sisters' kids have different last names.
It would make more sense to call it CNLabelContactRelationBiaomei. It's a concept that doesn't exist in English, so why use English? Nobody gets any wiser by that word salad. The docs can provide an explanation.
Maybe this was specifically done for Chinese but other cultures have the same or similar definitions.
In Indian culture, your mother’s sister’s children are like your siblings and not cousins.
Whereas your mother’s brother’s children are considered cousins (ie,one step removed).
I know that South Korea also has similar distinctions.
Uncle/Aunt/Cousin is fairly imprecise in many cultures.
They may have a code style book to avoid foreign language terms.
Also, suppose you’re localizing something to German. You have to learn English to understand the labels, but why would you also have to learn Chinese, etc (how many different languages/cultures gave rise to items in that long “see also” list?)
Finally, if this happens to also be a special case in some other language (I wouldn’t know), why prefer the Chinese (transliterated) name?
I'd guess that, in whatever language this is relevant for, there's a "feminine" marker that is ambiguous wrt whether it modifies parent/father into mother or sibling into sister.
The reason that your father's brother's daughter is not 表, while children of any of your mother's siblings are, is very simple: your father's brother's daughter belongs to the same family you do. Your mother's siblings' children, like your father's sisters' children, belong to other families.
Thank you for the explanation. I said it was a guess, and it wasn't too far off; either way it's literal patriarchy embedded into the language. I wonder if people's authoritative tone (and downvotes) would change if they discovered that there was also another language where the distinction was meaningful but based on different reasoning.
I strongly suspect the terms arose in the past from legal terminology around inheritance. It was very common in most countries for the eldest son to inherit their from their parents, and in families where there were no sons it was often the nearest male relative like a cousin. A cousin on the father's side had precedence over a cousin on the mother's side, but in English there aren't specific terms for those.
Perhaps in Chinese cultures in the past it was even more complicated, and necessitated terms for specific older and younger sibling's children depending on whether they were the offspring of a brother or a sister.
I'd imagine it's been added to facilitate some very culture-specific familial relationship term. Those tend to be rooted in ancient history and are often inconsistently (and arguably pointlessly) gendered but still need to be maintained to keep that culture happy.
> This seems like such a distant yet specific relationship type
I don't know much about it (never stepped foot outside EU/NA) but apparently some Asian countries have a pretty intricate system of kinship terms. For example Diagram IV in [1] shows different (Mandarin?) Chinese terms for what we would just call a "cousin" in English.
I also found the video by NativLang [2] on the topic pretty interesting.
My first guess is that there exist human languages in which there's a distinctive word for that relation. (French, for example, has "cousin/cousine" for a male cousin or female cousin, which is about halfway there.) I would guess this is used when translating into those languages.
(I'm not especially expert here, but figured I'd mention this because nobody else had yet.)
To me, many of these words sound like almost childish terms of endearment -- a little charming.
Anyway, this is not at all academic for someone who wants to participate in the culture, because everyone around you is going to be identified and addressed in this way, and you're going to have to know who everybody is! Even if, in your head, "chacha" is not some abstract relation, but a particular person.
English has some uncommonly used relational terms, like "second cousin once removed" or "great-nephew", which are comparable in complexity. If you're feeling creative, you can even stack on some confusing modifiers like "step-" or "-in-law".
Yes. There's an option to add "related contact". I'm not sure what triggers the full flow, but normally it shows three options, and eventually you can get a larger list of 15 or so expected options (mother, father, brother, spouse, etc). And an option for "all labels" that leads to the mess hinted at by this constant.
I'm not sure what the point is, since you also have an option for a custom label, which even if I wanted to add a link for the "younger cousin (mother's sibling's daughter or father's sister's daughter)", I'd probably type in whatever I call that relationship informally as a custom label before selecting that mess.
If you have a sufficiently smart (TM) metaprogramming system you can just stick things like this in a macro or template then you get the expressiveness but don't have to a write DSL.
Has anyone actually considered this may be a running joke at Apple? I mean yes, their API's can be quite verbose on naming, but this is just hilarious, and probably left that way. Just a thought. To critique a development practice based on the few names that are like this seems a little shortsighted. This type of contact classification is useless, and probably better left to the programmer to design the hierarchy that best suits their design goal.
As another commenter mentioned, no, it's not. It's required in Chinese. In English you would just say "This is my cousin", but in Chinese, the word for "cousin" changes depending on the details of how that person is related to you.
Why even use this when there is a custom contact string where you can specify just that regardless of language? This label on it's face is useless when the underlying API makes it so easy to just define your own label. Have you actually used this before?
Sounds like you haven't. Others have also commented this is useless when you can define your own label.
I find it crazy how many people are surprised by this label and even more how many people try to ridicule it or dismiss it by saying "why don't you just call it blah...", etc.
It's a cultural norm, and it isn't just a Chinese/Mandarin thing, this exists in many other cultures. In India they also have very different words for different relatives and it has long traditional reasons because historically it was (and even still is today) very important to keep good relationships with a big family network because quite frankly in many places life depends on it.
For example, if you have a sister and she gets married then you'd address your sister's husband's brother differently than if you also have a married brother. You wouldn't use the same word for your brother's wife's brother. Why? Well traditionally (and still today) if a women gets married then she leaves her family home and moves in with her in-laws. At that point she leaves one family and becomes the "daughter" of another family. She'll be living alongside her husband's siblings and his parents. As a brother you will address them differently and with respect because you want them to be good to your sister and because you are thankful that they are taking care of her now.
People should educate themselves more before making stupid comments because it really just shows their complete lack of worldliness, education, ignorance and arrogance. Not attributes which gain you a lot of respect in the world IMHO.
Nobody here has said that other cultures shouldn't have special designators for various family members. Some even knew the specific term for this one and the Chinese symbol for it.
It's perfectly reasonable for programmers to ridicule an unwieldy symbol and offer a shorter replacement. The replacement was to use the same word that is used in that culture instead of trying to describe the concept in English.
I don't see ignorance or arrogance in any of that.
Obviously comment order changes, but I literally just needed to look one comment down to find somebody saying "This type of contact classification is useless", and there are a bunch of other similar comments scattered around. I think the GP poster has a good point.
CNLabelContactRelationYoungerCousinMothersSiblingsDaughterOrFathersSistersDaughter - https://news.ycombinator.com/item?id=20341855 - July 2019 (176 comments)