Basically everyone (me included) is just completely baffled why nothing is improving and just sitting there waiting for something to be done.
I recommend the south bay if you want to escape the poverty, it's not as bad down there.
-2 karma · joined May 15, 2020
Basically everyone (me included) is just completely baffled why nothing is improving and just sitting there waiting for something to be done.
I recommend the south bay if you want to escape the poverty, it's not as bad down there.
What doesn't solve problems is creating a false BS dichotomy between "homelessness" and "homeless people" as if there are two major groups of people who are actively combatting two different problems. It's ridiculous. If the people who view "homeless people" as a "problem" aren't advocating helping "homeless people" as solving the problem what exactly are they advocating?? How do you solve the "homeless people" problem without helping "homelessness?" Don't be stupid, these things are one and the same problem with the same solutions.
This is a play on words inserting false malice where there was originally and obviously no malice intended.
Instead the origin of the malice is @dragonwriter intending to use a play on words to start a witch hunt.
I think ultimately a lot of the negative stuff I said about San Francisco pissed off some people who love the city. I wasn't trying to paint San Francisco in a bad light. I was trying to shave off some of the excessive and illusory positivity of the initial post because San Francisco as great as it is, is a city with deep issues and deep problems. To solve these issues and to solve these problems one has to first admit that they exist. Acceptance is hard for many, especially those who have lived here all their lives, and I think this attack was just an aspect of that.
I'm curious why someone like you, who likely speaks even less mandarin than me would want to live there?
The grass is greener on the other side for me. I always feel someplace else is better than here.
I think south bay you get less of the above with better weather.
I feel Jerks tend to be people with little empathy for peoples feelings and high affinity for reality and the truth at the expense of everyones emotions.
While most people don't officially define a "Jerk" with the definition above, I feel that the personalities most people perceive as Jerks fit the definition above perfectly.
It's just people are unable to see past the "lack of empathy." They are unable to see that the while some actions lack empathy, they are also in line with truth and reality.
That is the ultimate question... What kind of company do you want to build or work for. Do you want a company full of yes men and people who respect others? Do you want a company where people lack respect and lay the god awful truth on the table? Or do you want something in between?
I feel to get something in between you need a few Jerks within the organization.
Either the existence of a Jerk helps the Jerk himself survive and propagate his genes or the existence of a Jerk within a group helps groups that contain jerks survive.
If you think about it at a very surface level. Everyone hates Jerks so why does a Jerk even exist at all? Everything a Jerk does will lower his individual chances of survival by making people hate them. Humans are social creatures and an anti-social person likely will not survive if the group hates them.
Group dynamics of humans will ultimately select out Jerks. That is unless the Jerk has something to offer beyond making everyone hate them.
Obviously Jerks exist in our world, so their continued existence must offer something beneficial to the group. What would that be?
So imagine this situation. There's a software engineer at a company who's well liked. He's super nice, friendly, good-looking BUT he's ultimately not a very good software engineer. His skills are well below average, his boss knows it, everyone who's worked with him knows it, the only people who don't seem to know it is he himself and people who haven't directly worked with him. His skills are so poor that he would be fired if he wasn't so well liked.
Therein lies the problem. His Boss likes him but is unable to be honest with him about how his skills are so horrible that he'll be fired if everyone knows about how shitty his skills are. The person is so nice and well liked that not only is his career getting protected but his feelings are being protected as well because nobody wants to be a Jerk and hurt those feelings by telling him the reality.
Then a real Jerk of a person is suddenly assigned to work with this nice guy. The Jerk immediately sees the problem and reveals the truth to everyone. The Jerk regularly says things along the lines of: "This guy is useless, he doesn't know shit, the guy can't even code properly. His code is complete garbage." The Jerk publicly says these things and reveals to everyone the reality of the situation.
These are very toxic words that introduce aggression into the workplace.
But the Jerk introduces truth into the workplace. The Jerk was the only person who tells things like it is at face value. If the Jerk wasn't there, the well liked person would continue to be in that role and function as a parasite with the person himself and most of the company oblivious to the reality of the situation.
The cost of empathy is a mask placed over reality.
If your organization doesn't have Jerks then I almost guarantee that there is very likely to be huge issues within the organization that are masked by etiquette. The Jerk is essentially telling the truth and revealing big issues at great cost to himself. It's almost a form of self sacrifice.
In my my mind the Jerk exists because he benefits the group, but his actions come at great cost to his individual survival because Jerks aren't well liked.
Additionally I would argue that the term "Jerk" is a misnomer. Someone who is explicit about the truth should not be called a Jerk, especially when the truth comes at such a high cost.
The real Jerk is someone who deliberately covers up the truth. A manipulative person is never called a Jerk. A company without a single Jerk, a company where people have nearly perfect etiquette and friendly communication is also a company with a high number of manipulative people and likely deep problems that aren't discussed.
I don't know about you, but I'd rather deal with an oblivious Jerk than a well liked manipulator.
It's not about trust. It's about politics. They may not actually trust the CEO but to keep their position and good standing they have to pretend to trust the CEO.
Now that being said. Go looks to me, to indeed be made by someone who doesn't know that a sum type exists. In my link Rob Pike himself admits that he didn't know about structural typing.
Additionally Rob seems to be in general not up to date on type theory. Please follow and read the link above to see what I'm talking about.
Now, that being said. Never EVER did I dismiss Rob Pikes background. He's done great things. Now I will say something exactly in line with my intentions: You have told an utter lie where you accused me of dismissing Rob Pikes reputation. I have done NO such thing.
Additionally one question. What site are you using to run a background check? doesPikeKnowWhatASumTypeIs.com? Sometimes people make mistakes. I admit the possibility that I'm wrong, but limbo is kind of an obscure programming language. It's not easy to given that they use the term discriminated union type rather then the "sum type."
I would argue that although this type is included in limbo, Rob likely didn't use it too much or know about its use case to bring errors into the type system as he could have easily used it in Go. I could be completely wrong here but one thing is not wrong:
>Some people are ridiculously daring at dismissing others's reputations without the most basic of background checks.
Accusatory language like this even disguised with "Some people" and that are additionally utter lies are not an acceptable way to start a discussion.
Bool has a cardinality of two. True and False. A Product type (essentially a tuple) of two bools represents a bool and another bool and has a cardinality of 4. (True, True), (True, False), (False, False), (False, True). The cardinality of a product type is essentially the product 2 * 2 of the cardinality of both individual types. Product types represent the concept of AND: a bool AND another bool. The product type in itself is a type evaluated as the product of two (or more) types. In most languages this concept is represented as a struct or a tuple.
To remove confusion for sum types let us create a type with a cardinality of 4. FuzzyBool. It has 4 instances: VeryTrue, SortaTrue, SortaFalse, VeryFalse. A sum type represents the concept of OR. Let's see a sum type of a Bool OR a FuzzyBool (Bool + FuzzyBool). The new type can either be one of: (True | False | SortaTrue | SortaFalse | VeryTrue | VeryFalse). The cardinality is 4 + 2. Hence the term sum type.
Languages are typically asymmetric in types due to the lack of the explicitly offering the user the ability to combine types to form a sum type.
The Golang return value for functions is actually the opposite of a sum type. It is a product type. Rob Pike was likely unaware that you can create a type that is either (File* or Error) and instead utilized ((File* | null) && (Error | null)) to attempt to keep error handling within the type system. It results in IO functions having a return type with Cardinality of greater than 4: (File, nil), (File, err), (nil, nil), (nil, err) and they just expect you to ignore (File*, err) and (nil, nil) and assume it will never occur even though the type system does not restrict it from occurring.
If you want to learn this stuff imperatively I would recommend Rust, however you could miss the big picture with Rust due to the borrow checker and the option to do typical C-style programming that avoids utilizing the ADT's to the full extent of their power.
I would recommend diving into something like Haskell and getting to know algebraic data types and exhaustive pattern matching. You can avoid fully understanding Monads if all you want to understand is Sum types. Haskell will force you to utilize sum types very early on via exhaustive pattern matching.
func Open(name string) (file *File, err error)
Your basic Optional/Maybe monad would have worked better here.There is a lot of evidence supporting the fact that Rob Pike and company when inventing Go were not aware of Sum types indicating that this special Tuple return type (that can never be reused anywhere and must be pattern matched immediately after it returns) was created because of lack of knowledge and not as a design choice.
See this thread as evidence: https://news.ycombinator.com/item?id=6821389
Due to this, under a general definition of "correct" without the context of Haskell such a thing is still classified as generally incorrect. Instead it is more accurate to phrase it as "this is Guido's personal definition of correct." Not that there's anything wrong with that but this is generally unusual and opinionated behavior encoded into python and I wish people will acknowledge that.