News for hackers. Stuff that matters.
Re:The Elements of UI Engineering by thenanyu on Monday December 31, 2018 @12:36AM (#18793225)
Much thanks to Dan for taking the time to write this up. UI dev is a deep and highly technical field, but we’re often inundated with juniorish programmers because it’s often the entry point for folks coming out of school or boot camps. We need folks writing more about these kinds of principles and less about a new way to reinvent the wheel
Re:The Elements of UI Engineering by austincheney on Monday December 31, 2018 @08:08AM (#18794330)
Absolutely. https://en.wikipedia.org/wiki/Invented_here

The name of the game is failure aversion. Frameworks and NPM packages for everything. When I interview JavaScript or UI developers this is my first discriminator. Why write original code or reinvent the wheel when somebody else has your simple solution behind 50mb of external code that you didn't write? If you are that fearful coward who believes in not writing original code I don't want to work with you. Have a nice life and go work somewhere else. I would rather work with somebody willing to take a chance on problem solving.

If you are going to down vote please mention why. Don't be a troll. Hacker News tries very hard to not be an echo chamber.

Re:The Elements of UI Engineering by 0xCMP on Monday December 31, 2018 @10:36AM (#18794901)
You're being toxic by calling people "cowards" for simply using a package instead of writing it themselves which reduces the amount of code they need to directly maintain. Displays a complete misunderstanding of the tradeoffs involved as well as being rude.

And what's funny is that if you hadn't been a jerk the original point of Frameworks and NPM Packages for everything is a good point and probably would have been well received. Because, the fact is that, sometimes it IS better to do it yourself instead of using the package and most wouldn't. Sometimes.

[dead]
Re:The Elements of UI Engineering by HedgeSparrow on Monday December 31, 2018 @04:49PM (#18797265)
Why is it people think being "honest and transparent" means being rude and mean? Tact is also a useful skill.
Re:The Elements of UI Engineering by austincheney on Monday December 31, 2018 @06:39PM (#18797820)
Because sensitive people are too selfish to tell the difference. The world isn’t always smiles, hearts, and rainbows there to please you. Directness isn’t condescension unless you are a child. Sometimes honesty really does mean telling people what they don’t want to hear.

Tact isn’t a form of antidepressant. Tact is the means to account for the intention of offense without regard for actual offense. Overly sensitive people may never see that distinction.

People who figure these things out early tend to live happier and more fulfilled lives.

Re:The Elements of UI Engineering by pritambaral on Tuesday January 01, 2019 @01:25AM (#18799233)
> The world isn’t always smiles, hearts, and rainbows there to please you.

Of course it isn't, but that does not grant one an implicit licence to be uncouth.

> Directness isn’t condescension unless you are a child.

Directness isn't condescension, period. That, however, does not mean you can mix condescension with directness and call it plain directness.

> Sometimes honesty really does mean telling people what they don’t want to hear.

Then please, by all means, do just that, without resorting to improper name-calling.

----

You know what, I'm going to stop countering your points one-by-one, and try to talk to your central idea.

I agree with you, at a central level. I wouldn't hire people who cannot write their own code either. I, too, would rather work with people who can and want to solve problems than merely put pegs in holes with assistance from the likes of npm and SO.

But I wouldn't call them cowards. Because that would be mis-characterization, at best; and hyper-generalization, at worst.

Even if you meant to call someone risk-averse, or fearful, using the word 'coward' is more than being direct. 'fearful' is direct and sufficient, as is 'risk-averse', but if you couldn't settle there and had to reach as far as 'coward', that suggests you wanted to use the extra force that comes with that word. Thus, condescensional offence.

And then you continue in this path, characterizing those who wouldn't respond to you as lacking "balls", everyone who disagrees with your choice of words as "insecure", and everyone who downvoted you as "JavaScript developers" with "shattered hearts", those suggesting your "honest and rude" words lack tact as "overly sensitive" people.

Lastly, I'll leave you with the suggestion that people in this world lead happier and even more fulfilled lives without resorting to even the slight force you're employing here.

Re:The Elements of UI Engineering by austincheney on Tuesday January 01, 2019 @02:45AM (#18799381)
> Directness isn't condescension, period.

Then we wouldn't be having this conversation. This conversation is here because people are offended I used the word coward and not at anybody specifically. I call them cowards because the behavior stems from intimidation. Everybody has fear, but its how people respond to it that determines bravery/cowardice. That said it isn't a surprise that cowards would be angrily offended at the mere thought of such a characterization even when not directed at them.

You have no idea how many horror stories I have heard from legal that boils down to my boss is mean. After further investigation more than 90% of the time the person making the complaint needed a mean boss because they were a piece of crap.

> And then you continue in this path, characterizing those who wouldn't respond to you as lacking "balls"

Yes, people who down vote for a minor disagreement of opinion or because their mortal soul was shredded apart by their deeply profound state of offense don't understand what the down vote is for. It isn't there to reinforce an echo chamber. The down vote is there to push down comments that are completely outside the conversation at hand or that demonstrate bad behavior. The big tears of sensitive people isn't an indication of bad behavior.

When I down vote a comment I always reply saying why I am doing so unless somebody else has already said it for me. It is the mature courteous thing to do.

Re:The Elements of UI Engineering by pritambaral on Tuesday January 01, 2019 @12:42PM (#18801214)
I responded to you, not because of any of the reasons you mention, but because I genuinely wanted to point out to you your mistakes. It appears I have done a poor job of it, and I'm unlikely to succeed with further tries.

So I won't try very hard, and you might pardon me for the brevity:

1. Flight can be a perfectly sensible alternative to fight, and isn't always cowardice.

2. Fear isn't the only possible reason to avoid an endeavour.

3. Not every offence is taken angrily.

4. Not every offence is taken for the same reason.

5. Taking offence isn't exclusive to any single group, let alone "cowards".

6. I am a "mean" boss who also has to deal with people you dislike dealing with, and even I agree I am being uncouth when I call someone names because of their ineptitude, or other technical reasons.

7. The downvotes you are receiving aren't necessarily only from people who fall into those two extreme characterizations you describe.

8. There are no big tears here, only downvotes and people trying to talk to you.

9. Explaining every downvote due to bad behaviour gets tiring, eventually; though, here I am, and I haven't even downvoted you, yet.

Re:The Elements of UI Engineering by austincheney on Tuesday January 01, 2019 @04:47PM (#18802596)
> Explaining every down vote

This is written as an excuse of laziness, which doesn’t makes sense. Clearly there is the energy to become emotionally responsive. That is the nature of an echo chamber, destroy that which is disagreeable for comfort.

The rest of your points are all assumptions and stereotypes to qualify bad behavior. If you really merely disagreed with an opinion you would ignore it. There is something more at play if you feel the need to silence or destroy an opinion.

While I understand this all stems from immaturity and a vain need to somehow qualify it I will leave you with this:

https://www.bartleby.com/130/2.html

Re:The Elements of UI Engineering by pritambaral on Tuesday January 01, 2019 @11:44PM (#18804237)
1. Energy to downvote < Energy to explain.

2. Discouraging bad behaviour != Echo chamber

3. Rest of my points: specific refutals of your mistakes.

4. I didn't even disagree with your opinion, and I'm telling you this for the third time now. I didn't even downvote you, though I want to, especially now.

The very first site guideline about comments says "Be civil". You break that, complain about downvotes (which breaks another site guideline), and when someone tries to reason with you, you up the snark (which breaks the first guideline), and refuse to see/read anyone's point of view except your own.

Forget your misguided ideas that all you presented here is an opinion, and that every one who disagreed with your comment is fragile, thin-skinned, and thin-skilled, and examine just your behaviour here. Are you really, truly, surprised anyone wants to discourage such behaviour around here?

Re:The Elements of UI Engineering by austincheney on Wednesday January 02, 2019 @11:14AM (#18807180)
Your down voting without an explanation is how you exercise the echo chamber. The logic of your thinking makes sense and is agreeable, but you aren't putting the pieces together correctly. You may not be able to see it due to an informal bias I have started to study.

Because the behavior I am seeing here is also frequently seen offline as well I am writing a paper on it for my coworkers. It is pretty interesting stuff to research.

https://en.wikipedia.org/wiki/Sensory_processing_sensitivity

Essentially, SPS appears to be a form of advanced processing in the brain. The brain of a SPS person will process certain stimulus much faster and aggressively than a common person resulting in a deep emotional experience. The research indicates 15-20% of adults may fall into this description. The positive result of this scenario is an intrinsically deep set of experiences from an exceedingly minor trigger.

The primary negative result is a loss objectivity. A stimulus that results in a deep emotional experience is distracting to anybody. Such a distraction may likely effect all adults similarly. The difference here is whether the person is sufficiently triggered by a given stimulus. The given distraction warrants a response at cost to a broader consideration for the given subject or a wider distribution of inputs.

The tragedy of this is that adults cannot properly self-regulate their behavior when compelled to a strong emotional state. This is problematic because emotional equilibrium is what allows the adult brain to self-reflect on its behavior and apply controls as necessary to adjust the behavior. The self-regulation generally occurs as the emotional state cools over a brief time period. If a SPS person is more deeply and frequently compelled to a deep emotional state they likely cannot achieve the necessary modification controls present in the behavior of other adults.

The research also indicates a SPS person may pause on trivial things to allow for deeper processing of the resulting emotional state or triggering stimulus. In social settings this would appear awkward as the timing and observed delays would appear strange followed by a response, even if not spoken, that other people may not well understand.

Conversely I occupy the opposite end of this spectrum of abnormal. I am hyper-objective, which comes with its own sets of pros and cons. Hyper-objectivity is generally extremely rare yet blessed for strengths of analysis and logic. People with this sort of personality are often, and undeservedly, considered to be smarter than average when such assumptions are grossly inaccurate. These people will frequently analyze common things to a degree of specificity most people generally don't care about.

The cons of a hyper-objectivity personality type is apathy. Since empathy is a deep form of listening an analysis hyper-objective people are great at it, but this is not reflected in their behavior. Instead all that most people see is that hyper-objective people don't care about emotions, which is mostly accurate. People like this area completely aware of this and how weird it is, which results in some abnormal decisions. It is easy to use empathy as a weapon to manipulate people or crush them with their own emotional states, and that is certainly an anti-social behavior. Hyper-objective people can modify their own behavior in response to social stimulus with far too great of ease which could appear somewhat sociopathic.

The general lack of regard for emotions has the interesting side-effort of an anti-Dunning-Kruger effect. Instead of an incompetent person who feels superior to their peers a hyper-objective person may in fact exhibit superior work performance but incorrectly believe themselves to be inferior despite evidence to the contrary. The resulting bias then compounds the problem by wondering why you can complete a hard task and your coworkers cannot. If you suck then they must super-suck, which isn't correct at all.

If you are an SRS person I recommend pointing that out to somebody you are close to offline so that they may provide you pointers when things get weird.

Re:The Elements of UI Engineering by Daynil on Monday December 31, 2018 @11:42AM (#18795350)
It's important to understand the root of the arguments for and against both "not invented here" and "invented here". Both can be considered a poor mindset because it's thinking in absolutes. Certainly, everyone can agree there is no need to "write original code" for every problem you encounter. If there are libraries behind which there are teams of strong engineers (React, Angular), who work specifically on that problem and exhaustively test and iterate on it, why would you take time and productivity away from the development of your product in order to create your own solutions?

On the other hand, if the existing libraries/solutions don't fit your use cases and you spend more time customizing them to work than you do developing your product, or the existing solutions are out of date, unsupported, or appear slapped together, it would certainly be worth working on your own solution to see if you can find a better way. Likewise, experimenting with custom reimplementation is a great way to understand the problems libraries solve in an in-depth way, as Dan suggests, and you may even end up with something better. You just need to be realistic about whether it makes sense to make it yourself or utilize what exists.

Re:The Elements of UI Engineering by austincheney on Monday December 31, 2018 @06:46PM (#18797874)
I suppose the common problem is of when to apply abstraction. There are times when abstraction is necessary to prevent duplication of effort and other times when it is convenience layer. These qualities are not the same and I find people generally cannot differentiate them, even outside of programming. The crux of that problem is confusion is confusion of a person’s own level of effort versus actual effort auctioned by an artifact.