Hacker Newsnew | past | comments | ask | show | jobs | submit | chmod775's commentslogin

Function coloring also only applies to a few select languages. If your runtime allows you can call an async function from a sync function by pausing execution of the current function/thread whenever you're waiting for some async op.

Libraries like Tokio (mentioned in the article) have support for this built-in. Goroutines sidestep the issue completely. C# Tasks are batteries included in that regard. In fact function colors aren't an issue in most languages that have async/await. JavaScript is the odd one out, mostly due to being single-threaded. Can't really be made to work in a clean way in existing JS engines.


“Function coloring” is an imaginary issue in the first place. Or rather it's a real phenomenon, but absolutely not limited to async and people don't seem to care about it at all except when talking about async.

Take Rust: you return `Result<T,E>`, you are coloring your function the same way as you are when using `async`. Same for Option. Errors as return values in Go: again, function coloring.

One of your nested function starts taking a "serverUrl" input parameter instead of reading an environment variable: you've colored your function and you now need to color the entire call stack (taking the url parameter themselves).

All of them are exactly as annoying, as you need to rewrite the entire call stack's function signature to accommodate for the change, but somehow people obsess about async in particular as if it was something special.

It's not special, it's just the reflection that something can either be explicit and require changing many function signatures at once when making a change, or be implicit (with threads, exceptions or global variables) which is less work, but less explicit in the code, and often more brittle.


This allows one to sprinkle implicit returns throughout the entire body of one's function and I'm not sure what to think of that.

Also the syntactic rules around control flow within elements/literals/identifiers seem a bit inconsistent. Some things require curly braces, others don't.

By the way you can probably implement this to 90% without needing a compilation step for React. Just track what elements get created by react factory functions during the function component execution (similar to how hooks work), and treat any that weren't passed as children to another as implicit returns. This only breaks when they're used verbatim in expressions, but this library doesn't allow doing that without a special wrapper tag either. A library approach should probably add a lint rule to disallow it.

The only thing you can't implement as a library is some of the syntactic sugar that allows one to directly put control flow within elements without wrapping the thing in an IIFE.

Overall a bit too much magic for my taste. The style stuff is nice, but I'd prefer a library approach for that in a react app as well.

Finally here's something with rather strange output:

    export component Test() {
      <div>{Date.now()}</div>

      if (Math.random() > 0.5) {
          return;
      }

      <style> div { color: 'red' } </style>
    }
Yielding:

    const Test__static1 = <div className="tsrx-vhi6ss">{Date.now()}</div>;

    export function Test() {
        if (Math.random() > 0.5) {
            return <div className="tsrx-vhi6ss">{Date.now()}</div>;
        }

        return Test__static1;
    }

    /* CSS */
    div.tsrx-vhi6ss {
        color: "red"
    }

So you either get the date when the component was most recently rendered, or the date when the page was loaded with a 50% chance each (should probably pick one). And the CSS is unconditional, which is not very intuitive.

I'm not sure how much of that is intended, and how much is a bug.


There is definitely a bug there, I'll put up a fix in a bit. Thanks! :)

Lots of components from third parties, starting with the processors they use (Intel/AMD vs ARM processors).

Framwork is usability and performance first, openness second. MNT is the other way around.


The Kobo Glo, released in 2012, is still getting updates to the latest Kobo firmware version.

In fact all Kobo e-ink devices, except the Kobo Mini, wifi, and the original one, are still getting firmware updates.

Their android-based tablets with IPS screens are all discontinued though (as far as I am aware).

This is more than Amazon ever did. They haven't updated the firmware on some of their devices that are officially "supported" in years.


Not to mention that those devices all support regular EPUBs out of the box, and so you can still put new content on them today.

Of course, you'll get a bit more out of them if you convert your EPUBs to KEPUBs with Kepubify[0], but the point remains that Kobos are supplemented by their cloud/connected features, not inherently dependent on them.

0: https://pgaskin.net/kepubify/


I don’t understand why anyone would choose a Kindle over the Kobo range of devices.

When I bought the Kobo Clara it was also a significantly better device purely on hardware specs. It was slightly more expensive, but that’s more than paid for by how long it’s already lasted me, whereas my spouse’s kindle (bought before we discovered Kobo), is already e-waste.

Kobo has also officially tied up with iFixit to provide official fixing guides and parts, allowing for relatively inexpensive hardware repair (to be fair, the battery replacement process I went through my device was quite annoying due to the waterproofing layer, but it worked, and my device is much older than their iFixit partnership, so hopefully the newer devices have repairability more in mind).


Kobo also integrates with public libraries via Overdrive

It’s amazing to check out a book from your library and have it sync to your kobo, all paid for with your library card

You literally would have to pay me to go back to a Kindle


Calling DotA just a custom map is a bit of a stretch. That was merely the packaging. These "custom maps" had various scripting capabilities that made them more than just some terrain.

Also custom maps are mods by definitions anyways, with the exception of games where the creation of maps is a component of gameplay.


I mean, to those who played them, 'custom map' is basically just a term of art indicating the things you said. In the parlance of the mid-2000s WC3 scene, you would call them custom games or custom maps.

Or, if you were slightly older, you might call them UMS, as they were in Starcraft. Short for "Use Map Settings", indicating that the game logic should come from the scripts and triggers in the map file rather than the built-in logic for ladder games.


> Somebody is making all those faked videos and photos.

Yeah. Bored 15 year olds for laughs.

We had a great time putting the most ridiculous stuff out there.

Having a classmate who was actively buying into tons of conspiracy theories (9/11, cold sun, hollow earth, ...) was just the cherry on top and probably what got us into it in the first place.


I can call my ISP and someone will pick up within 5-10 minutes. Sometimes instantly. For a 40 euro/month contract.

These guys have millions of customers. At least in this country fast and competent customer service is the main factor that differentiates them from their competition, which is cheaper but can be a pain in the butt. This seems to be worth the extra 5-10 bucks to millions of people.

You just have to want to.


> Is it private?

> 100% local. Nothing leaves your machine. Ever.

Except for the part where it gets added to the context window and sent to anthropic's servers?

This is a bit strange to point out explicitly, since that ship sailed anyways.


Boastful lies like this are a telltale sign of vibe-coded projects. Approximately, an AI is making word-association guesses from its context window, and arranging those guesses into grammatical forms that human RLHF reviewers find impactful. Frequently the lies are obvious if you have a mental model of the project, which the AI doesn't have.

There's also no reason to learn to read and write! First graders could just point their phone at some text and have it read to them, or dictate to their phone to achieve the reverse. Why learn to swim, walk, run? Machines can do that for you too!

For now there's plenty of people who are significantly more capable than AI models. Someone who fully outscources to machines will never join that club.

You have to evaluate students on their own skills before you continue their education, because at some point AI models won't be able to help them. Anyone can use some LLM to pass the first few months of undergraduate engineering disciplines, but if you got through that and haven't learned a thing, you're completely fucked. Worse, you won't even notice the point at which AI starts to fail until you get your test results.

Once the above is not true anymore, education is pointless anyways. However for now AI can at best replace the worst performers and only in some areas.


>You have to evaluate students on their own skills before you continue their education, because at some point AI models won't be able to help them.

If at some point AI models won't be able to help them, then give them assignments that reach the point where AI alone isn't enough, so they'll only be able to solve them if they learn whatever is necessary. This is what's meant by "making assignments harder". Students who learn to solve harder problems with AI will be more competitive in the workforce than students who only learn to solve easier problems by themselves. Because AI already allows people to solve harder problems than they could unassisted, but it's a skill that needs to be learned.

As an example, with AI, it'd be a reasonable assignment to ask students to write a working C compiler from scratch. Without AI that'd be completely beyond the reach of the vast majority of students.


That's great for autodidacts, but most students will be stumped by a complicated problem if you don't slowly walk them up an incline first.

Also what do you think is an appropriate assignment for first graders where "AI is not enough"? Are we supposed to give them problems meant for engineering majors?

The things you are saying at best apply to a few select areas of education and you are hyperfocusing on them. What you are neglecting is that a lot of education focuses on teaching tool use: reading and writing is a tool, CAD software is a tool, AI is a tool, even language is a tool. For many people the best way to learn to use tools is being taught by another human being. That human being has to evaluate their progress somehow. If a first grader uses their phone to have text read to them, this tells me very little, except maybe that they can at least understand spoken language to a degree.

Using LLMs effectively, especially without essentially becoming the LLMs meat-puppet, requires a set of skills many 10th graders still struggle with. Skills like putting what you mean into words, extracting meaning from text, and thinking critically about the information you are fed.

Finally there's the matter of philosophy, ethics, and politics, which also happen to be on the curriculum in some places. Are you going to let a LLM argue for you? If you have never learned to evaluate your own beliefs and turn them into something coherent that you can communicate to others, and instead let the LLM argue on your behalf, then congratulations: you have just un-personed yourself because you refused to let others help you become an actual individual in society. You're a sack of meat hooked up to a machine. ... It's probably obvious I feel strongly about this in particular.

At the end of the day, we can at least agree that people should learn to read and write? For now?


Not really the same thing. They're much larger already than most stores you'd see in urban Japan.

Think more in terms of small convenience stores ("Spätis" with daily necessities) everywhere. Typical distance to a store is maybe 500-1000m in Germany. In dense areas of Japanese cities it's closer to one store every 100m-200m.

So in Germany it'd be a 10 minute walk, while in Japan most of your "walk" would be getting downstairs.

The flipside of that is that selection is going to be limited compared to what you'd find in Germany.


I see. What you describe does seem to match what I experienced in NYC, Portugal, and Spain? Small supermarkets everywhere with a bit of a random selection of items

The Żabkas in Poland too, I suppose, at least the smaller ones.

Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: