HNHacker News
TopNewBestAskShowJobs

lcuff

914 karma · joined February 8, 2011

submissionscomments
lcuff··on The Law of Leaky Abstractions (2002)
I like the idea of TCP as a leaky abstraction because it points out the difficulty of engineering the abstraction we really want. It would be wonderful for TCP to be a guaranteed connection abstraction, but it turns out in today's world, the abstraction of a reliable connection is TCP + a network administrator + a guy with wire snips + solder (metaphorically). Maybe down the road, AIs and repair bots will be involved, and the guaranteed connection abstraction might become real or much much stronger. Although it gets more complicated because if a message takes hours to deliver, is that going to work for your application? Yes if you're archiving documents, no if you're trying to set up a video conference call or display a web page.

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.

lcuff··on How Copernicus took down Ptolemy's Almagest
Phlogiston theory, formulated in 1667 - 1703 and being used 80-100 years later for its explanatory power, was a complete misconception of burning, heat and oxidation, is one example.

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

lcuff··on Sorting the Self: Assessments and the cult of personality
I agree that my dismissal was shallow. Oops, my bad. In contrast, your comments were clear and concise. I think my inclination towards criticism sprang out of the flowery and obscure prose the author used to make his points. I would wish the original author had been as clear, concise and to the point as you are. As other commenters have said, some of the sentences leave my brain swirling with "what is this man trying to say, I have no idea?"
lcuff··on How Copernicus took down Ptolemy's Almagest
"We don't know what we don't know", comes to mind as an answer. Quantum Mechanics and General Relativity explain a Whole Lot, but since they haven't yet been "meshed", there's more to come. The James Webb Space Telescope is providing data that is upending many things in cosmology. Dark Matter: As a phrase, it's not even clear that it's "matter". There's some phenomenon that causes stars to be attracted to one another independent of our current notion of mass.

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".

lcuff··on The lumbar puncture that changed my life
I know of someone who was paralyzed after a lumbar puncture. Eek times 10. Something to avoid if at all possible.
lcuff··on Panama Canal drought forces Maersk to start using land bridge for Oceania cargo
You're right. Brain burp/misread on my part. That's a figure for individual cars. Union Pacific site:

Union Pacific (main freight carrier in Southern California) gives 286,000 lbs, ~ 140 tons https://www.up.com/aboutup/reference/maps/allowable_gross_we...

lcuff··on Panama Canal drought forces Maersk to start using land bridge for Oceania cargo
The comment I responded to did say 'carry'.

'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?

lcuff··on Panama Canal drought forces Maersk to start using land bridge for Oceania cargo
Gulp: A fully loaded neo-Panamax ship is rated to carry 120,000 tons DWT (which excludes the weight of the ship itself). A train composed of heavy-axle rail cars has an upper limit of about 160 tons. Building bridges and a rail bed to carry a load 1,000 times larger than ever before is no small thing. Then you need to build drydocks to get a fully-loaded ship on and off a train. Building rail cars that would hold the thing ... I wonder if it's even possible in metallurgical terms ... I seriously doubt a rail-car wheel could carry 1,000 times as much load as it does currently.
lcuff··on 9999999999999999.0 – 9999999999999998.0
Oh for 9999999999999999 pennies! I wouldn't care if I got one less that I was supposed to! :-)
lcuff··on Nielsen's Ten Usability Heuristics [pdf] (2020)
Interesting to contrast this with https://www.cs.umd.edu/~ben/goldenrules.html which is currently on Hacker News front page.
lcuff··on Golden Rules of Interface Design (2013)
The contrast between this Nielsen-Norman (NN) page and the OP page is marked. The NN page is much easier to absorb the information. More succinct, way better page layout.

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).

lcuff··on 10,000TB storage cartridges could become mainstream by 2030
Not only that, but the article describes a system that is in a remote data center, not something I can have in my laptop. Although if it fit in my laptop for the same price as a hard drive. I could probably 'struggle along' with a write-once solution and not worry about filling 10,000 Terabytes any time soon. Complete history on every file!
lcuff··on AI and the Rise of Mediocrity
Totally agree. Insipid. No real insights, nuances or ideas.
lcuff··on Othello Is Solved?
I agree. As a nuance, (and I'm not an Othello player, but a chess player) in many positions in chess, there are many moves that, while not the best, are just slightly worse. Finding the 'refutation' for a weaker move is the measure of the strength of a player, and playing a few slightly weaker moves in a row will almost certainly take even high level players out of 'book' (the memorized sequence of best moves). At that point, the strength of the players becomes important, as opposed to how much they have memorized. The strategy, then, is to have a _slightly_ worse position from which one can recover and go on to win. Obviously, if the opponent plays perfectly, it is either a win for him or a draw. Typically the 'slightly weaker' move still keeps the game a draw. The advantage is not a game-winning sized advantage. I wonder if in Othello there are positions where there are multiple possible moves which 'preserve' the draw.
lcuff··on The Unix Game
Curious: Did you "take the tour"? I doubt I would have had the patience to figure it out on my own, but after taking the tour, I had no problems.
lcuff··on The Razor Edge Book of Sharpening (1985) [pdf]
I bought this book years ago, and found the information interesting and useful. But it's also a shill for their products. Annoyingly, I found the home jig for knives and chisels extremely fiddly. You have to adjust 4 separate set screws (allen screws) to install the jig (mount it on a knife or chisel), and you have to do it twice: once for the coarse stone and one for the fine stone. I eventually switched to EdgePro equipment for kitchen knives, and I use a Veritas system jig with an 'ordinary' diamond stone for chisels and plane blades in the shop.
lcuff··on The worst programmer I know
LOL. Yup. And I've been in a company that had a product like that. One man, one file, one function. Scads of GOTOs. It was a state machine, managing ports on a terminal-to-ethernet box circa 1987. Oh my.
lcuff··on The worst programmer I know
<Ultimately the best way of measuring programmer productivity is by the assessments of the programmers on the team. >

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.

lcuff··on I don’t buy “duplication is cheaper than the wrong abstraction” (2021)
True enough. But in some companies, there's so much push that the wrong abstraction gets left in place as refactoring and rewriting get pushed down the priority stack and never happens. The way to circumvent this is to not declare the task done while it's still the wrong abstraction, but there's still a (present) schedule cost compared to just duplicating the code and tweaking it.
lcuff··on I don’t buy “duplication is cheaper than the wrong abstraction” (2021)
In about 1990 I got tasked with building an installation and configuration system for the hardware and software package my company built. It was an Ethernet card and a TCP/IP suite being added to the PCs of the era (that had an AT/ISA bus where you had to find a free address block, then jumper the card to have the correct address, lotsa fun.)

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?

lcuff··on How to Solve It (1945)
Mostly, talk therapy. As you say, struggling with a hard problem for an extended period of time and feeling dumb is part of the process. For me, the shame was excruciating, so I'd turn my attention to anything else to stop feeling shame. The shame was intense enough that the underlying "felt sense/thought" was "I don't deserve to be on this planet". With the help of a therapist, I managed to start looking at myself and _managing_ the shame, so I could then examine my behavior and experience: Oh, I said that mean thing to somebody - I (deservedly) feel bad and want to change how I treat people. Oh, I couldn't get a math problem right away: I don't need to feel negatively about myself because of that. Frustrated, sure, but NOT "I don't deserve to be on the planet". Shame that intense tends to be (and was for me) rooted in childhood: Weak/bad parenting. It's a project to overcome it.
lcuff··on The new science of meditation
I agree. It makes me feel weird, too. Google famously says "Our mission is to organize the world’s information and make it universally accessible and useful." I can cynically add "So they can monetize it." However idealistically a company's mission might be framed, in the end survival via being profitable is a core unstated goal. A company dedicated to bringing stress relief to the world participates in the same dynamic. It's a bit like hearing how psychopaths can emulate empathy because they know it will get them what they want. Eek/shiver.
lcuff··on How to Solve It (1945)
On a totally orthogonal axis: My biggest problem with tackling math problems early in life was psychological. My inner critic would say nasty things to me when I didn't get the answer right away, making it impossible to stick with exploring the problem. Once I overcame that, I got lots better at math.

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.

lcuff··on The new science of meditation
> The counterpoint is essentially that if people engaged in social outward-looking collective action, as opposed to solitary inward-looking meditation, then you can change the world -- as has been demonstrated countless times.

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.

lcuff··on The new science of meditation
> I can't help but feel the recent societal interest in meditation and psychedelics is wrongheaded in that it's treating a symptom rather than a cause.

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.

lcuff··on Flipping the model presents a new way to treat sleep apnoea
I sweat where the mask contacts my face, so that's one issue. As others have said, it can be noisy. I find the noise highly variable based on how it sits on my face and if there are things (a pillow, a sheet, my hand) in front of the discharge vent. At times it feels claustrophobic. I feel vastly better in the morning if I've used the device for more than half the night, so I'm very motivated to make it work.
lcuff··on ChatGPT's odds of getting code questions correct are worse than a coin flip
Two thoughts: (1) ChatGPT answers questions immediately (I'm paying for premium service so I don't get shut out), which is a big win over Stack Overflow where I recently waited for two or three days before getting a partially-correct answer. (2) I often am using ChatGPT (in my Ruby world) to find gems (ruby packages) or language features that address my issue. Even if the whole answer is wrong, it often provides me with very helpful tidbits of information at a huge time saving.
lcuff··on Show HN: I made a little tool to practice country positions on the world map
Overall, good on you.

Because I know very few countries in Oceania, it's very frustrating. Wake Island, eek!. If there were a 'show me' button that appears after a wrong answer, that would be a good addition. The result message (error/correct) disappears too quickly Maybe need to control it with at 'got it' button? I'd like to zoom even closer on the Balkan peninsula.

lcuff··on Psilocybin Was the Biggest Mistake of My Life (2021)
I feel quite sorry for this person, however ... even the most well-vetted treatments can have powerfully negative effects on some people. Allergies to penicillin come to mind. I had a manic episode comparatively quite late in life (46). It's a stunner all right. Fortunately within the first week it was recognized and I was hospitalized for a week, given meds that got me to sleep, and I've lived a relatively normal life subsequently. All that said, people advocating psilocybin should be well-informed about mania, and prepared to intervene forcefully if mania gets induced.
lcuff··on Don Lancaster has died
In the Incredible Secret Money Machine, one of his tips was to cut off the power cord to your TV. (Pre Internet era!) The solid advice to not let yourself get distracted is invaluable. And harder than ever in today's world.

He also welcomed people contacting him directly with questions. Amazing. (Derek Sivers does than now: amazing).

← PreviousPage 2 of 9Next →