HNHacker News
TopNewBestAskShowJobs

btrask

1,914 karma · joined January 20, 2011

https://bentrask.com - https://github.com/btrask
submissionscomments
btrask··on I No Longer Tell My Friends about Anki/SuperMemo
> Prove you wrong how? By learning things with it?

The author of the article is specifically struggling with his evangelism. He says he thinks the world would be a better place if everyone used spaced repetition. I don't know (can't imagine honestly) what sort of utopia he envisions, but he needs to show instead of tell. Just like I need to.

It's so insanely hard to lead people. I think the only thing that works is to lead by example. Any sort of talking is just fluff. You have to show people how to accomplish or attain something they care about.

As for SR itself... for decades we've had some of the smartest people (and perhaps even some of the best educators) like Richard Feynman decry rote memorization in the classroom. SR takes the worst 8th grade history class you ever had and doubles down on it. You can choose what to memorize, but it's still just memorization. Why not use a personal knowledge base (== your Anki deck) that you can refer to, and let your memory naturally cache the things you commonly use?

If you have a problem and you're considering SR as a way to solve it, my advice is to really drill down into what the problem is. Why do you think you need to fill your brain with snippets of data? (If you're just trying to pass a test, then sure, use Anki.)

btrask··on I No Longer Tell My Friends about Anki/SuperMemo
I say this with all the kindness that I have... this article/guy is really sad.

First of all, if you think you've found the world's ultimate fighting technique, don't try to show it to random people for approval. Use it. Anki yourself in secret until you're a super-saiyan, and then unleash your strength on the quivering masses. Hear the lamentation of their women, until they are begging you for mercy and also to teach them about spaced repetition.

That brings us to the second problem... spaced repetition doesn't work. Or rather, it does work, but it does the wrong thing. If you want to be a walking encyclopedia, maybe SR is a good approach. But if you want to understand the world, be able to do things, be funny and gregarious, know the answer but also know when to play dumb... SR can't help you. Even if you want to learn a language, if you can't learn it by using it, do you even need it?

I was excited about SuperMemo, Anki, etc. too at one point. Eventually I decided that they just aren't that good. Now here's the thing: if you really think SR is the best thing ever, don't argue with people - prove us wrong.

btrask··on Yann LeCun on GPT-3
If you are nothing more than fancy autocomplete, then why should we argue with you?

GPT is not trying to make a point and is not capable of changing its mind. You, hopefully, are.

Edit: I don't think you should be getting downvoted because it's a valid (and interesting) question.

btrask··on Pale Moon migrating source code from GitHub
More detail in this article, "Modern Web Standards Are Leaving Niche Web Browsers Behind": https://linuxreviews.org/Modern_Web_Standards_Are_Leaving_Ni...

Via https://news.ycombinator.com/item?id=24863401

btrask··on Ask HN: How to succeed as a CS student from a bad, tier-3 Indian university?
I'm not Indian so I can't comment on that aspect. But your English is good and you have internet access. There should be something you can do.

I think your fear of dropping out might be misplaced. You know the classes are bad and even if you get a degree, you will be competing with countless others who also have degrees, many from better schools. If you quit and took the time to develop some hard skills, your odds couldn't really get any worse.

Good luck.

btrask··on Firefox: The Jewel^WEmbarassment of Open Source
Yeah but just look at Brave. Is that really what you would've wanted Firefox to become?

This is just a sad story without any winners.

btrask··on 'I'm sick of influencers asking for free cake'
If someone pretended to be a famous actor (etc) in public, I would say they probably weren't very happy with their own life. Somehow with influencers, this has actually become a "trend."

I think it ties in with Instagram travel posts, hiring grounded private jets for 10 minutes to take selfies in, etc. For Gen-Y/Z, it's like you have to pretend to be rich and famous, or else you're nothing.

And from the other end, their parents see them as daycare units while they go about their jobs. There's no on-ramp to society anymore, just fake it til you make it.

How is a young person who isn't in tech or finance supposed to be appreciated these days? I'll tell you how: they offer to advertise for local businesses to their friends ("followers"). There isn't even a major war for them to die in.

btrask··on 'I'm sick of influencers asking for free cake'
Yeah, really. I don't think young people are really doing this for free food, I think the main reason is that they want to feel appreciated and treated well for once in their lives.

Edit to add: Walking into a store and asking for free stuff because you're So Important is a power trip. It's a small chance to act like a celebrity. But just think of all the kids pinning their hopes on the slim chance of being Influencers because they don't have more promising opportunities. It's sad.

btrask··on Ask HN: Does any programming language have inline offline async calls?
> Perhaps it could be a good fit for serverless functions.

I was thinking of that too. :)

If you're interested in the technical mechanism, it's possible to load a core dump and resume execution. I found https://web.archive.org/web/20091026234235/http://geocities.... which explains the (surprisingly complex) process of resuming from a core dump.

Also see https://criu.org/ and https://checkpointing.org/

btrask··on Ask HN: Does any programming language have inline offline async calls?
It's not just getpid. It's everything that interacts with processes. fork(2), wait(2), kill(1/2)... Any external management tools (supervisors, debuggers, etc)... Imagine trying to administer such a program, where even tools like top(1) couldn't track it over time.

Here's one that I think you'll find compelling: threads. What do you do if you have multiple background threads running when one thread wants to exit the process? You could just exit the thread, but I think that would defeat the point.

Imagine you're using a language, and you find this feature in the docs. Then it lists all the caveats and things you have to give up. Would you still use it, or would you make do without it?

Maybe I haven't convinced you but I hope you can agree it's a major tradeoff. I think that explains why a general purpose language hasn't tried to make it a standard feature.

btrask··on Ask HN: Does any programming language have inline offline async calls?
Very interesting question!

I don't think there is any language/environment that does that natively.

What you seem to be asking for is an abstraction of processes. However the process itself is ultimately an abstraction that is made-up by operating systems.

For example, let's say you call getpid(2) in your program. Then you do some "async offline" work, during which the process exits and is restarted. Now you have a new PID, which is not what you expected.

That means you need to introduce "virtual PIDs" that don't change across async calls. Before long you've reimplemented all of libc (or equivalent).

Golang has had a lot of problems just making green (non-OS) threads work correctly. Any time you stray from the OS, you will have problems interfacing with it.

As an OS feature, I can imagine a kernel that aggressively pages out programs while they're blocking, etc. Before long you get into philosophical questions like "what does it mean for a process to be running?" Usually it's something that the OS defines, and we leave it at that. But you don't have to, if you don't want to.

btrask··on There are only four billion floats, so test them all (2014)
It's known as the birthday paradox. There is a probability table here: https://en.wikipedia.org/wiki/Birthday_paradox#Probability_t...
btrask··on Apple says electronics recycler “illegally” reselling over 100k iPhones, iPads
Isn't that still better than your nephew buying a brand new battery and then throwing it in the trash? Even if he only got a week's worth of use out of the old battery.

Reusing things doesn't change the overall recycling rate. It just reduces the demand for new things (which is why Apple dislikes it). Knowing how to Reduce, Reuse, Recycle (in that order!) is much better than some sort of cargo cult destruction of working devices.

btrask··on Apple says electronics recycler “illegally” reselling over 100k iPhones, iPads
> Believe it or not, if you tell customers you will recycle old products for them, you'd better not sell them instead.

Legally, I'm sure you're right. But on a practical level, what do you think recycling is?

If you fish something out of the trash and reuse it, congratulations, you have recycled it in the most efficient way possible.

It's like these recyclers are "too good" at their jobs. I thought market forces were supposed to make sure of that.

The really disgusting thing is Apple coopting "recycling" for "destroying unused product to maintain brand value."

If you have an old Apple product and you want to be good to the environment, do not take it to an official Apple recycling dropoff!

btrask··on What does I/O bound mean? (2008)
Good answer :)
btrask··on What does I/O bound mean? (2008)
Hey Static, thanks for the thought-provoking dicussion the other day!

Let me ask you this: let's say you're downstream of a very slow server that is outside of your control. You need to access it, and there's nothing you can do to speed it up. Are you IO bound in this case?

btrask··on What does I/O bound mean? (2008)
Here is a recent HN discussion on this topic: https://news.ycombinator.com/item?id=24519786

My current answer is... it's complicated.

btrask··on Actix Web 3.0
Actually, I thought about it some more. I think a server that spends 99% of its time blocked on IO is "IO bound" even if it's because no one is sending it requests. It's a very different condition than saturating the NIC, but it's still meaningfully waiting on IO. Like, the process has to be spending its time somewhere, and it doesn't know "why" it's blocked.

Maybe the terminology around this could be developed some more.

btrask··on Actix Web 3.0
You're right that most web apps aren't actually "IO bound" per se. They aren't making optimal or maximal use of either network or disk IO.

However the important point is that they aren't CPU bound either. Most are "user acquisition bound" (like tens of requests per second peak). Some are more like "developer time bound" (cutting the server farm in half is not worth the cost in dev time).

Either way, using a slow development framework (including language, DB, etc.) that the developers like is a reasonable choice for what they're trying to do. (I personally wish most software was faster, but they have no reason to care what I think.)

btrask··on Update on Firefox Send and Firefox Notes
Thanks for that link!

We might be arguing past each other. He says this:

> Unfortunately a narrative kind of built up around all this stuff that Gecko developers were a bunch of bumbling idiots who were just maintaining a bunch of outdated bloatware, while the Servo project was where all the action was.

This is precisely my complaint. Firefox really did need some sort of strong direction to save it, and Servo was all they came up with. I don't think it was just a few self-important Servo devs, I think (at least part of) management was in on it too. In fact, the blog post above was signed by Brendan Eich, which I find really disappointing (I thought he, at least, was smarter than that...).

Anyway, once Servo sucked all the other oxygen out of the room, Firefox was really doomed. Now Servo is dead and we have... a few incremental improvements to Gecko to show for it. I definitely feel bad for the guys working on Gecko the whole time. That said, they could've came up with some "response" to Servo, but they didn't.

btrask··on Update on Firefox Send and Firefox Notes
Thanks for taking the time to reply!

In your quote, they didn't want to create a full browser, but they did want to create a full engine. And it was designed to be "productizable." I think it supports what I'm saying.

Servo was the last big plan from Mozilla to turn things around. Since then, we've just gotten Pocket, random bundled add-ons, etc. It seems like they are mostly just content to slide into irrelevance. And I am very sad about that. I do honestly wish Servo had succeeded, although I thought it was pretty obvious it wasn't going to.

Also, while I'm airing grievances, I think it's very likely that having a few big chunks of Firefox/Gecko be written in Rust is going to be a maintenance burden that will slow down development even more. Now that Mozilla has laid off the Rust and Servo people, what are they going to do?

btrask··on What happened to Firefox Send?
Google is giving them so much money, for such a long time, that it is hard to replace. Golden handcuffs. Donations and $10/mo "Firefox subscriptions" aren't going to make up for it.

There are ways they could make money and leverage their browser, such as becoming a certificate authority (they're literally outsourcing profit) or making their own search engine (which would probably be a bad idea for other reasons). Nothing else is going to replace $400m/year.

Their real problem is not "making money." It's too much easy money making them go soft, and then wasting it.

btrask··on Update on Firefox Send and Firefox Notes
It was written in 2013... when Servo was announced. Servo was originally intended to replace Gecko. Anything else is a retcon.

Saying "large parts of that work landed in Firefox" is misleading. A browser engine is a huge thing, and most of Servo is not in Firefox. If you just want to replace a few parts, creating an entirely new engine from scratch is far from the most efficient way.

Why does this matter? Well, because decisions have consequences. Way back in 2013, they were feeling pressure from Chrome, and decided the best way to compete was to rewrite the browser engine (in a brand new language to boot). The original engine stagnated, and here we are 7 years later. What a colossal failure.

btrask··on You have turned Google Chrome into IE
I still use and mostly like FF too, but just look at their marketshare (and their own developer confidence, with Servo and Brave). Chrome destroyed them and I think it was mostly on technical merit, from a general user's perspective.

Honestly Google did everything they could to help FF (to the tune of $400M/year) and Mozilla squandered it. Really sad.

Edit: Before this comment gets downvoted I want to try to explain it. When Brendan Eich wanted to make a new browser, he could've based it on Firefox/Gecko, which he had decades of experience with, but he didn't. What a vote of no confidence. Then Rust was invented because they thought creating a new language was the best way to catch up to Chrome's security. Even if you like Rust, you have to admit that was a bad decision for Mozilla's management.

Mozilla was the good guys, but being the good guys doesn't automatically mean you'll win. Too much wishful thinking can easily cloud one's judgment.

I'm only writing this because I care.

btrask··on You have turned Google Chrome into IE
> Would you say premature standardization is a part of the problem?

More than that. It's a joke to try to standardize something that is still an open research problem. If something is going to be a standard, there should be at least one off-the-shelf algorithm you can implement that is roughly on par with the competition.

I'm not saying there shouldn't be any room for innovation, but... Well, maybe there just isn't. A standard probably has to be a lowest common denominator.

btrask··on You have turned Google Chrome into IE
One of the comments points out the site in question is purely built around this feature (the Web Speech API): https://twitter.com/hammerlockddt/status/1304658792467116033

However, I think the original complaint is still legitimate. Why is Web Speech a thing, and what browser developers are poised to support such a feature, aside from Google? If Google wants to open source their speech tech, why don't they just do that?

I don't really blame Google, because they're just building a better browser than anyone else can build. But the effective result is definitely "embrace, extend, extinguish."

Perhaps it's not too late to refactor the web into a layered architecture so that it's possible to replace parts of it. But as long as we keep adding every feature under the sun, that goal is getting farther and farther away.

btrask··on PayPal is currently blocking all transactions containing the word “tardigrade”
Is "I Can't Believe It's Not Butter!" a bad brand for margarine? Imagine it getting flagged by the butter police.
btrask··on Eliza, the Rogerian Therapist (1999)
If someone made a version of Eliza for victim culture, "the bit about [message subject] is incredibly condescending" could be one of its stock phrases.
btrask··on Undefined behavior is often a thing for C programmers (2011)
Have you thought about why having a standard causes all these problems with undefined behavior? The point of a standard is to be less specific than a reference implementation. That's why it's written in English, not code. That means definitions are fuzzy, which is why every kind of English-language law, rule, or spec is vulnerable to malicious compliance.

If C had a judge, like the legal system, he could deny attempts to use fuzziness in the standard (intended to prevent specifying bugs) to introduce bugs. Unfortunately, C doesn't have a judge with common sense, it has people who think the standard is code and anything that is undefined really is a license to do whatever you want.

I guess this problem was inevitable as soon as the words "nasal demons" were put to keyboard. Now the only thing that can save us is a reference implementation.

btrask··on Undefined behavior is often a thing for C programmers (2011)
If you remove the standard, wouldn't everything naturally be implementation-defined? Like, say, Python.
← PreviousPage 2 of 11Next →