HN user

aidenn0

29,832 karma

e-mail: <my username>@geocities.com

Posts17
Comments13,630
View on HN

I have never lived in SF but I have failed similar Chinatown-during-lunar-new-year tests in all 3 places I lived for more than a year. I have no doubt that an AI, particularly one that continually gets traffic update from some external source, would do better than I in predicting such hiccups. OTOH, an unconstrained LLM seems very likely to route me down streets that don't exist at least some of the time. If only we had some sort of database of actual streets and routes that were capable of checking the work of an LLM...

I see the same thing with LLMs in software development. If you say "find a bug in this code" it will regularly confabulate bugs. If you ask it for a test-case, run the output through some deterministic thing that tries the test-cases, and tells the LLM it's wrong, the output of that system will mostly be legitimate bugs[1].

For now, transformer-based generative AIs seem at a minimum like a very useful tool for dealing with "squishy" problems when you have some way to validate their output. Many of the 404's to the blog are probably people validating the output of generative AI, which is the opposite of the inference made in TFA.

1: It will also occasionally hack your test-runner; I suppose that's also finding bugs, just not in the software you wanted to find bugs for.

ECC and DDR5 2 days ago

Besides electrical noise, there are mechanical issues as well. I've seen systems fail memtest86+ after being moved, and the issue being fixed after reseating the DIMMs. ECC can catch mis-seated DIMMs very quickly.

I really liked their comparison matrix, it's honest about what it does and what it doesn't do. I'll probably go with Kobo + Koreader when my current ereader gives up the ghost, but given that 4" ereaders seem to be all the rage these days, I wish them success.

Dinners with my extended family are like this (everybody talking at the same time, most people participating in two simultaneous conversations). After moving away for college, my sister would not talk during dinners when visiting because she found it took her weeks to get back out of the habit again.

I wear an analog watch; I've never spent over $200 on a watch, despite being a bit picky (I insist on a day-of-week feature).

Seiko doesn't seem to make the movement in my watch anymore (5M83), but the equivalent automatic-winding mechanical watch can be had for under $200 still.

Casio and Citizen sell analog watches for under $100.

Then they start calling it "buproto" or something. Firefox has a trademark too, but that didn't stop debian from distributing the same thing under the name Iceweasel...

RE: SQLITE_BUSY: I would replace "often" with "nearly always." On top of that, it's often not fixed even when pointed out. "This software only has one writer, so we don't need to handle SQLITE_BUSY" translates to me sending SIGSTOP to a process any time I want to run some queries against its database.

I encountered that on exchange to a Gymnasium in the '90s. I liked it better than the Palmer I learned in the US.

+1 for the rollerball recommendation.

It's hard to describe what it's like using something like the STABILO worker after using ball-point pens for years. Compared to a ball-point it feels like the ink is jumping out of the pen, and I was accidentally joining words together for about a week. They are also much less fussy to care for than a cheap fountain pen, and much cheaper than a good fountain pen.

IMO All it exposed was writing past the end of buffers.

There was no memory corruption previously due to partially to luck, and partially to heavy testing (which would have exposed most forms of memory corruption).

I think it is fare to say that the change was a cause of the vtable corruption occurring, since without the change it didn't happen.

Once this is discovered, you need to rethink your change plan for the next release; if you back out this one change, your software will return to a working state. Whether doing that, or fixing your buffer overflow is the correct thing to do depends on a lot of specific factors.

Many problems can be solved with either macros or higher-order-functions. The advantage of macros is two-fold (macros also have disadvantages, and Lisp allows you to use either solution; deciding which to use is often a matter of taste):

1. Syntax can be more familiar

2. Performance (to the extent that there is overhead for functions-calling-functions).

For example, let's consider a hypothetical lispy language that doesn't have a short-circuiting "and" operator. Macros would let you implement something to used like this:

  (and (foo x) (bar y))
Higher order functions would require you to do something more like:
  (and (lambda () (foo x) (lambda () (bar y))
More noise, and more work for the optimizer (or in the worst-case, more work at run-time). Languages that rely heavily on higher-order-functions will tend to have terser syntax for anonymous functions. For example in javascript you might do:
  and(()=>foo(x), ()=>bar(y))

What I described was for bugfixes, not features. Features were set in stone way before this.

I also maintain that it is impossible to know which changes depend on other changes. In one case, applying a bugfix that changed the order of allocations at startup caused vtable corruption somewhere else because it changed how much padding a particular malloc() call was returning, and someone was writing past the end of their allocation.

[edit]

Also note that what you described is not CI; things are developed on their own branches and not integrated immediately.

I didn't work on this project, but I've been involved with similar ones.

There is a process for getting a change into version control. Each change needs to have a (virtual) paper trail: motivation, risk analysis, sign-offs &c.

If you can't get something into VC quickly, you can't really do CI.

The obvious solution would be to have an integration branch that doesn't need the process to get in, do CI testing on that branch and then make the process for merging to the real branch.

I've never seen this done personally, but I have been told some places do it, and then you end up with "Change X, which got approved had a dependency on Change Y that didn't get approved and we didn't realize it until now because Change Y was put in the integration branch before Change X"

My 18 year old daughter is the same (and also can't read an analog clock). Despite me using "quarter to," "quarter past," and "half past" regularly throughout her life. And we having analog clocks in most communal spaces in our house. And we drilled her on analog clocks for two summers in a row...

In one of the MD boarder counties (Montgomery maybe?) it at least used to (and may still) be illegal to posses even sparklers or fountains. And they were serious about enforcing it. Cops would stake out VA fireworks stands and radio in license plates to cops in-county. Since even possession is illegal, it's a confiscation and fine the moment you cross the boarder.

Neither my parents nor my wife's parents have their desktop connected to their router. The cable modem isn't even in the same room as the desktop.

[edit]

If it matters, my mom no longer has a desktop (she uses a docked laptop now), but it is true of the docking station and was true of her previous desktop.

So similar origin to the Imperial acre; which it is very close in size to:

  You have: 175*24m^2
  You want: acre
   * 1.0378426
   / 0.96353724