News for hackers. Stuff that matters.

vbsd

Re:My 1981 adventure game is now a multimedia extravaganza on Saturday February 21, 2026 @04:43AM (#47099098)
Even if we accept this metaphor of English as a programming language, it’s used in a highly unusual way.

With regular programming, you have a full specification of the program (the code) and it gets turned into an executable. When you want to change some behavior, you change the code parts that relate to the behavior and the whole thing is compiled again.

With agentic programming, there’s no full spec, no “codebase in English”. You write instructions but they are discarded as soon as you close your session, and what’s left is this lower level thing (the code written in a traditional programming language).

It’s almost like a difference between declarative and imperative paradigm for the process of creating software.

Re:When 1+1+1 Equals 1 on Tuesday November 18, 2025 @06:03PM (#45973469)
> A simple example where 1 + 1 + 1 = 1 is ℤ₂, the group of integers modulo 2 under addition.

That’s a good example of an algebra where 1 + 1 + 1 = 1, but the article is specifically about systems where in addition to that condition, this second condition is also true: 1 + 1 != 0 (not equal!). ℤ₂ is not an example of that.

What sort of an interleaving would produce 1? Seems provably impossible to me, assuming atomic assignments.
Ah, I missed that you were talking about the code in the appendix, not the top examples. Yeah, you’re right on every count then, aplologies.
Huh, you're right about this, thanks.

On the other hand, I maintain that this is an incidental rather than essential reason for the program finishing quickly. In that benchmark code, we can replace "sleep" with our custom sleep function which does not record start time before execution:

  async fn wrapped_sleep(d: Duration) {
      sleep(d).await
  }

The following program will still finish in ~10 seconds.

  #[tokio::main]
  async fn main() {
      let num_tasks = 100;
      let mut tasks = Vec::new();
      for _ in 0..num_tasks {
          tasks.push(wrapped_sleep(Duration::from_secs(10)));
      }
      futures::future::join_all(tasks).await;
  }
> because `tokio::time::sleep()` keeps track of when the future was created, (ie when `sleep()` was called) instead of when the future is first `.await`ed

I’m not a Rust programmer but I strongly suspect this updated explanation is erroneous. It’s probably more like this: start time is recorded when the task execution is started. However, the task immediately yields control back to the async loop. Then the async loop starts another task, and so on. It’s just that the async loop only returns the control to sleeping task no earlier than the moment 1s passes after the task execution was initialy started. I’d be surprised if it had anything to do with when sleep() was called.

Even if CockroachDB uses Postgres wire protocol, it doesn’t mean you can easily migrate all workloads supported by CockroachDB to Postgres. The scaling properties are different.
This is true but you’ll have these risks with any paid service/dependency that has non-zero migration cost. Startups still use such products all the time, assuming that a huge price spike is not that likely or that there’s going to be some viable alternative with a migration path. I’d say it’s quite different when you can’t even guess what your starting point is going to be once you hit those $10M.

But I do agree with the general argument that lock-in as this for your core technologies (a database certainly counts) should be avoided.

Yes, and this is probably a common issue with these “pricing on request” schemes. Unpleasant, yes, but this unpleasantness can still be worth it if you’re running a big business and you need the database with the properties that CockroachDB has. But for an early stage startup, there’s nothing to even talk about. I doubt they are going to give you a quote for some hypothetical future where your annual revenue beats $10M.

Maybe they actually just don’t care about attracting startups, the whole “free license for small players” thing is just so that developers can check it out, not for actual use.

There’s one problem with this model. Let’s say I’m running a pre-revenue startup and I want to use the self-hosted version of CockroachDB. The license allows me to do it for free until I get to $10M annual revenue. Well, that’s great and all but I’d like to know how much I’ll pay once I do reach those numbers. However, the pricing for self-hosted offering is a secret, it’s “pricing upon request” – I have no way to estimate these expenses and thus no way to estimate if CockroachDB is a reasonable choice for my startup in the long term.
Re:Show HN: Honeydo - A task list for two. on Tuesday August 06, 2024 @06:38AM (#41169510)
I got a subscription and the problem is gone. There are still other issues though, for example, the instant reminder feature doesn’t seem to work, the partner doesn’t get a notification.

On an unrelated note, do you accept feature suggestions? Task deletion would be nice to have.

Re:Show HN: Honeydo - A task list for two. on Tuesday August 06, 2024 @04:22AM (#41168813)
I might find this app useful. However, for some reason it heats up my iPhone SE (2nd gen) and everything grinds to a halt after a few seconds of using it.
Re:Russ Cox is stepping down as the Go tech lead on Friday August 02, 2024 @07:31AM (#41137933)
Would you expand on the Python issue? I find recent Python additions either useful or non-intrusive, I wonder which ones you think are born out of FOMO.
Re:PyCon 2024 Videos Released on Thursday July 18, 2024 @04:43PM (#40999552)
Curious that there’s no talk about nogil. Or did I just miss it?
You are invoking an argument that's called "group selection" [1], it's the idea that genes propagate based on whether they benefit the species as a whole. This argument has been heavily criticized and it is not used much in the mainstream evolutionary science. Perhaps group selection has some effect in some niche, limited circumstances but it doesn't seem to be a significant driving force of evolution.

You don't need to invoke group selection to explain dying though. Dying might be an evolutionary advantage, not to you, but to the genes that make you. Which is not the same as the species, at all [2]. Organisms die not to make space for others but because building the mechanisms to keep young indefinitely is not worth the price compared to spending these resources on reproduction mechanisms. Or because the right combination of genes that allow you to have free lunch just wasn't reached yet. If there was a magic mutation that prevents mammals from ageing without any other effects, I'm pretty sure that gene would spread. Quite possibly to the detriment of the species.

(Beware, not an evolutionary biologist, just somewhat interested in the topic.)

[1] https://en.wikipedia.org/wiki/Group_selection

[2] https://en.wikipedia.org/wiki/Gene-centered_view_of_evolutio...

Am I missing something in the replies? The tweet reads:

> They are openly pushing for genocide of white people in South Africa.

Not to be pedantic but this sounds substantially different from “there’s a genocide against white people” to me. What are the people in the video actually singing?

Re:How critical theory is radicalizing high school debate on Saturday July 29, 2023 @10:13PM (#36927097)
What texts by Jorge Luis Borges are you thinking of? Wikipedia quotes him calling himself a conservative, and none of the short stories I’ve read strike me as revolutionary. Perhaps something from his youth?
Re:Make Your Database Tables Smaller on Friday December 30, 2022 @05:31AM (#34183749)
This Django example is more of a "[one or zero] to [one or zero]" relationship, that's likely what the grandparent post means. I doubt any of the mainstream relational databases have a way to enforce exact one-to-one correspondence between two tables. You could use triggers that execute at the end of transactions or something like that - but that's not part of the relational model.
I was curious what 6th leading cause of death means in terms of percentages. From the annual report on MAID (medical assistance in dying) in Canada:

> In 2021, there were 10,064 MAID provisions reported in Canada, accounting for 3.3% of all deaths in Canada.

> The number of cases of MAID in 2021 represents a growth rate of 32.4% over 2020. All provinces continue to experience a steady year over year growth.

https://www.canada.ca/en/health-canada/services/medical-assi...

Re:HP Dev One Laptop with Pop_OS on Saturday May 21, 2022 @01:46AM (#31455560)
You can scroll by holding down the middle trackpad button with your thumb and pushing the trackpoint in one direction or the other. You can even scroll horizontally this way. This is the main reason for the complaint about the missing middle button.
Re:Our memory is better than experts thought on Friday May 28, 2021 @11:18AM (#27316410)
There you go: https://vbsd.github.io/chimp-game/

In medium mode, the numbers are hidden only after you click on 1. In hard mode, the numbers are flashed for 210ms. I couldn't succeed with that one, not even close.

The game is very rough and not mobile-friendly though, sorry. I know nothing about front-end development and my interest quickly waned.

Re:Twitter Bots Are a Major Source of Climate Disinformation on Sunday January 24, 2021 @03:13AM (#25890306)
I suspect it was meant to be read as “I don’t [just] believe in climate change, I’ve researched it, it’s something I’m concerned about.”
Re:Structured Procrastination on Sunday October 25, 2020 @09:18AM (#24886040)
Do it while procrastinating on something more important. That’s the gist of the essay.
Re:What Working At Stripe Has Been Like on Friday October 09, 2020 @06:16AM (#24728467)
Probably a reference to Jesus.
This line of thinking would be very relevant if Ukraine was a member of NATO. But since it’s not, could you elaborate? Which alliance do you mean?
I’ve first read posts about your website many months ago, and I’ve been intrigued ever since. Could you share a planned release date, even if approximate and preliminary?

Also, it’s seems that your product has been “almost ready” for some time now, just out of curiosity, what are the main blockers?