923 karma · joined February 8, 2011
"Basically, when you get to my age, you'll really measure your success in life by how many of the people you want to have love you actually do love you."
The details of Orwell's life were interesting, but the above-quoted paragraph lands as highbrow prose that doesn't say much. I had to look up bildungsroman "A novel whose principal subject is the moral, psychological, and intellectual development of a usually youthful main character". Oh my. It was/is a proper novel. I disagree that it should be characterized as bildungsroman, with all the caveats and flourishes. In fact, it's more about the protagonist's discovery of the truly moral depravity of the culture he lives in. The creative element of the ugliness of the culture is made even more compelling for me by the fact that the storyline avoids the conventional "Shape of Stories" patterns described by Kurt Vonnegut. It ends with the protagonist having all creative life and individuality crushed out of him. Not an easy end to encompass. No happy ending here.
TCP is problematic in modern circumstances (think: Inside a data center) because a response within milliseconds is what's expected to make the process viable. TCP was designed to accommodate some element of the path being a 300 Baud modem, where a response time in seconds is possible as the modem dials the next hop, so the TCP timeouts are unuseable. QUIC was developed to address this kind of problem. My point being, the abstraction of a guaranteed _timely_ connection is even harder.
I think Joel could have expanded his thoughts to include the degree of leak. SQL is a leaky abstraction itself, yes, but my own take is that ORMs are much leakier: Every ORM introduction document I've read explains the notation by saying "here's the sql that is produced". I think of ORMs as not a bucket with holes, but a bucket with half the bottom removed.
Phlogiston theory is post-Baconian. To me, Bacon was the first to articulate the method of thoughts that characterize good modern science: Observations, theory, prediction, experiments to verify the predictions. So I don't think saying we've thrown out pre-Baconian theories is germane to the conversation.
There is a Wikipedia page for Superseded theories in science. https://en.wikipedia.org/wiki/Superseded_theories_in_science
Richard Feynman said "Science is the belief in the ignorance of experts", and Carl Sagan said the "Science is a way of thinking more than it is a body of knowledge". Both of these point to the reality that our current understanding of the universe is riddled with errors and omissions. We do our best with the data we have, and try to transcend our own prejudices and history.
How much or our current understanding is "just as wrong?": Well, like most things, it's on a continuum, and to some extent a matter of opinion. Was Newtonian mechanics "just as wrong" as Ptolemy, when considering Relativity? I wouldn't say so, but maybe you would. Ptolemy's conception explained almost nothing and glossed over contradicting facts. Newton put mathematics around observations available to him, but named the reality that he had no understanding of how action-at-a-distance happened. "I make no hypothesis".
Union Pacific (main freight carrier in Southern California) gives 286,000 lbs, ~ 140 tons https://www.up.com/aboutup/reference/maps/allowable_gross_we...
'Just dig a trench and fill it with seawater'. Starts to sound an awful lot like a canal to me ... and ... why do you need a train to pull this?
Both articles have information/direction worth heeding, but there is irony in the fact that the OP page adopts same-text size and paragraphing conventions of yesteryear that the NN page does away with.
It's also frustrating that Hacker News doesn't pay attention to some of the information. In creating an edit to an existing post, the feedback after clicking on the 'update' button is not as clear as it should be. (It's a screen redraw, I guess).
Maybe ... Productivity itself is difficult to define. Different people will value aspects of the work differently
At one Internet Advertising company I worked for, the founder had written most of the original code. Written in the late 1990s, it was Perl, JavaScript, HTML, and SQL jumbled together. Completely ignoring the notion of 'separation of concerns'. Huge amount of code duplication. Source code control? Phhht! Nary a test in sight. Ran programs as root to work around permission problems. Self modifying code ... you betcha. He worked right on the production servers. He could and would push out a feature the same day a customer asked for it. VERY quick to make the customers happy. The company was being bought out at the time I came on board. Pocketed his millions, headed down the road, yay for him.
My own take is that the company would never have 'made it', if a software team had been hired to 'do it properly'.
After his departure, as we rewrote our code base to 'professional' standards, much time was spent refactoring that produced few or no new features. How productive was that? A very complex question.
As a digression, I sometimes found his original code easier to maintain that the stuff done 'the right way' because there WAS no 'separation of concerns'. I didn't have to hunt in a different part of the source tree for where something was done. It was all 'right there'. YMMV.
In the end, 'productivity' is way more subjective that we'd like.
I wrote the first system targeted at AT&Ts Unix for the 386. After it was completely done, I was assigned to do the same for Xenix. After that was completely done, I got assigned to do SCO (Santa Cruz Operation) Unix. After that, Interactive Systems (ISC). Each system had its own architecture for installation and configuration. I didn't know in advance anything about the different systems, nor any knowledge that the other systems were on the horizon. As I was writing the second system, I was refactoring like mad to avoid duplicating code, and feeling very proud due to previously learning the horrors of duplicate code. I can't remember details, but among other things files had to be placed in a specific directory hierarchy for each system, and various files had to perform certain (different) functions on each system. When I turned to the third and fourth target systems, the refactoring just became weirder and more complicated, but I was determined to avoid duplication.
Historically it turned out we never revised these releases. With 20-20 hindsight, it's a case where the refactoring was completely pointless, and code duplicated 4 times would have been way faster to create, and easier to maintain if we had made new releases. I think part of Sandi's point is that YAGNI applies as well ... a higher level abstraction may accommodate changes that never arrive, or the changes may be so large that NO abstraction will cover it.
On the opposite end of the spectrum, in 1980 (yeah, I'm really old) as a summer-hire, I'd written in HP-Basic this very funky single-purpose very primitive data base system. When I returned 9 months later after graduating, two full time guys had made small changes to the system, but one guy had made a breaking change, the other guy got pissed off and duplicated _the entire program_ (a single file, to be sure) and made one small change. Thereafter I had to maintain two versions of the thing. Gaaack. It was the ultimate lesson in "don't duplicate code". (It was also in the days before we had a version control system or diff, so backing out and correcting the change wasn't practical.) Mel, where are you now?
And working on yet another axis, the most useful tip I've gotten on how to think about problems is to "think in extremes". Perhaps more applicable to physics than math, but a classic example is the puzzle where a ship in a lock (closed system/giant bathtub) has an engine break down. As the engine is being hauled out for repairs, the chain breaks and the engine drops into the lock beside the ship and falls to the bottom of the lock. Does the water in the lock rise, fall or stay the same? The only person I ever told the problem to that solved it described his technique: Imagine the engine is the size of a pea and weighs 20 tons. Shazaam: The water in the lock falls because it is now displacing its volume, instead of its weight in water.
Yes, it has been demonstrated, and yes it requires collective action, but no that doesn't mean I (necessarily) have the time, energy or skill to act effectively to change any one, let alone dozens or thousands of these stressors, even if they're enormously stressful to me currently. The 'bang for the buck' in my world is to address the stressors at the personal level, and hope/intend to contribute to some worthy cause as well.
I agree, but the question emerges "what is treatable?" Many of the thousands of causes of stress in modern life can't be changed by an individual: I can't unelect politicians I disagree with, clean up the air where I live, or make the roads I travel significantly less clogged with traffic. But I can change my reactions to these. Thich Nhat Hanh taught people 'to consider every red traffic light a Bodhisattva, teaching us to "stop and be here now"'. An individual can treat SOME causes: Disconnect from Twitter and nightly TV news, and if that's what you mean, I agree with you even more strongly. But for larger realities, "the social structures that cause so much of the stress", no immediate solutions are available to the individual. Stress reduction is a good way to go.