Hacker Newsnew | past | comments | ask | show | jobs | submit | whilenot-dev's commentslogin

> It's that code that would just be better written as a normal loop.

Have to disagree with your conclusion here. It's that code that should be rewritten, so it doesn't mutate the input arguments at all.


To not just link to another thread: The specialty of ljharbs issues sits somewhere between "JavaScript is a very dynamic programming language that grew a lot and quite fast" and "we cannot trust developers to do the right thing".

His libraries tend to build up on older runtime implementations and freeze every used functionality during runtime, so they provide "second-run safety" and "backwards compatibility". Developers disagree with some of its effects, such as a grown dependency tree and impacts in performance of multiple magnitudes (as measured in micro-benchmarks). ljharb seems to follow a rather strong ideology, but is a member of the TC39 group and a highly trusted person.


ljharb is also conveniently paid per download. His actions border on malicious especially when viewing from a supply chain attack angle.

https://github.com/A11yance/axobject-query/pull/354#issuecom...


It definitely feels a bit strange and potentially alarming, but after reading through that whole thread he ultimately seems like a sincere person doing work that he thinks matters, now getting dogpiled for it.

If he had kept his strange and alarming behavior to himself, he wouldn't be 'getting dogpiled' for it now.

The problem is that he's forcing his ways on others. If we're identifying an aggressor here, it's him. The project maintainers are the victims.


At least in the thread linked here, it seems like his maintainership over the project is legitimate, which makes it wrong to characterize him as "forcing" his ways on anyone.

Even ignoring that examples of his behavior are easily found elsewhere, the link itself shows him completely disregarding feedback from other contributors to force his own way.

Honestly, I can't understand the intent behind such a defensive rebuttal to the criticism of his actions.


I don't care one way or another. I'm not a JS developer. I'm just struck by a reaction that seems quite extreme, and very visible dogpiling.

My point wasn't about javascript. He got pushback because he ignored everyone and just did his own thing. It has nothing to do with javascript and you can see that in the link. That's a weird excuse.

I haven't found one person who agrees with him on what he thinks matters. His way is wasteful and slow and just indefensible.

Also, I imagine cost of the globally wasted CPU cycles is much higher than what he profits. It's a pure abuse of resources.

Agree, I wish every project would have that!

I still think the conclusion on "setTimeout is cursed"[0] is faulty:

> The setTimeout method in JavaScript is cursed when used with small values because the implementation may or may not actually wait the specified time.

The issue to me seems that performance.now()[1] returns the timestamp in milliseconds and will therefor round up/down. So 1ms errors are just within its tolerance.

[0]: https://github.com/immich-app/immich/pull/20655

[1]: https://developer.mozilla.org/en-US/docs/Web/API/Performance...


JS is not a realtime language.

setTimeout() does not actually guarantee to run after the elapsed time. It merely gets queued for the next async execution window after that timer elapsed. Hence it can also be off by infinity and never get called - because JS is single threaded (unless you use a worker - which comes with its own challenges) and async windows only open if the main thread is "idle".

Usually, this is very close to the time you set via setTimeout, but it's very frequently slightly off, too.


setTimeout guarantees that the time provided is the time that has at least been elapsed, if it elapses at all - I think that is known to every JavaScript engineer out there.

Then there are also gotchas like these[0][1]:

> As specified in the HTML standard, browsers will enforce a minimum timeout of 4 milliseconds once a nested call to setTimeout has been scheduled 5 times.

Still, the issue is rather how to measure the elapsed time reliably, for unit-tests among other things.

[0]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setT...

[1]: https://html.spec.whatwg.org/multipage/timers-and-user-promp... (first Note)


Indeed - I was a bit surprised by them mentioning this to be honest, since, as I understand it, this is kind of a widely accepted limitation of setTimeout - it's purely a 'best effort' timer. It's not intended to be something where "yes after exactly Xms it'll execute.

This isn't quite the whole picture. If called in a nested context, `setTimeout` callbacks get executed in the next execution window, or at least 4ms after the initial call, whichever is earlier. Similarly, I believe `setInterval` has a minimum interval that it can't run faster than.

See: https://developer.mozilla.org/en-US/docs/Web/API/Window/setT...


> JS is not a realtime language.

Is there even such a thing? You're at the mercy of the platform you're running on. And Windows, Linux, Mac, Android, and iOS are not realtime to begin with.

I guess if you're running on a realtime platform but in a VM like JS does, you can then take that property away, downgrading the "language" from being realtime. I wouldn't call that a language property still though, maybe my VM implementation doesn't make that downgrade after all.


So since "it’s about networks and relationships", here are the referenced someone elses...

Studios:

- AB Fine Art Foundry LDN: https://www.abfineart.com/

- Factum Arte: https://www.factum-arte.com/

- Cerámica Suro: https://gazemag.com.mx/ceramica-suro/

- Stephens Tapestry Studio: https://stephenstapestrystudio.com/

Individuals:

- Billy Teasdale: https://glasgowinternational.org/artists/billy-teasdale/

- Natalie Bradwell: https://bradwellblacksmiths.com/

- Nick Brandon: https://www.inthebandstudio.com/about

I once visited one of these studios, Kunstgiesserei St. Gallen[0], and these were just the nicest people and were producing works for big names like Urs Fischer, Paul McCarthy etc.

During my studies I was fortunate to help out fellow students (and visiting artists) myself, even wrote a master thesis for one. I remember the worst work to take on was such kind, where the artist tried something on their own, then that didn't work, so you just receive this mixed pile and "just need to make it work" - that's quite a learning experience. I still hold artists that are interested in the craft process and seek help early in high regard.

I was always fascinated how these studios/individuals are given titles like "fabricators", "inventors", "scientists" or "technicians", but just not "artists". There's a huge legacy when it comes the title "artist" and the funny bit is that, yes, even you can just start calling yourself one. On the other hand, a software engineer has no problem to hire another software engineer, whatever the work might end up to be.

[0]: https://www.kunstgiesserei.ch/


> During my studies I was fortunate to help out fellow students (and visiting artists) myself, even wrote a master thesis for one.

Shouldn't they write their own master thesis?


Circumstances differ and a master thesis in fine arts is not held to high standards scientifically anyway.

EDIT: I wouldn't do it again though.


How do you expect an LLM to help here? Can't you just use OverlayFS on the database volume, or a backup thereof, and run the migration against that?

Huh? "The user is drunk" as a rule is great, there's no need to redefine it. Especially for POS interfaces! You'd want them as intuitive as it gets, because their users can be under a lot of stress, and could, in fact, be drunk.

I understand GP's "I don't think every website or tool needs to aim for the lowest common denominator" in two ways:

1. This rule isn't an excuse to stop raising the bar when it comes to interaction design ("drunk people won't notice the difference anyway").

2. Some machines should only be operated when absolutely sober and the interface should reflect that requirement ("don't drink and drive!").


Maybe things have changed in the past two decades, but I definitely would have been fired from my retail job if I showed up drunk. The POS interface there was super non-intuitive, but very efficient. This was 20 years ago so the classic text-mode interface with F1-F12 keys assigned to different functions.

While I doubt there's a single job where it'd be allowed to show up drunk, I also happen to know several bar owners that like to share some drinks with their customers. As required by law here in Austria, also bars need to use a POS system. I worked on one almost 10 years ago.

> You'd want them as intuitive as it gets [...]

I've recently been reading up on the science of learning, and I realized I never considered what intuition meant to me. Merriam-Webster lists it as:

> a: the power or faculty of attaining to direct knowledge or cognition without evident rational thought and inference

> b: immediate apprehension or cognition

> c: knowledge or conviction gained by intuition

If I could frame the thought of my original comment in terms of intuition, it would be:

All software should be intuitive, at what point that intuition is built differs.

For widest adoption, that software should be immediately intuitive to the widest group of people.

For maximum efficiency in a given (usually professional) domain, that software should allow a user who has built up their intuition to effectively merge with the machine.

I don't think one precludes the other, and a lot of the best software is immediately understood by a common user while having features for power-users. I do think there's a tradeoff to some degree though. If you're building a very specific technical tool, perhaps you can assume the user is a drunk programmer, but not a drunk grandmother. As in, the expected level of intuition need not be at the lowest common denominator.


I share the confusion. It depends on the measuring intent I guess, and it'd have been nice to say something about that and include some kind of indicator for these outliers. Here's the thing in Google Maps: https://www.google.com/maps/@47.1745904,7.2745602,14z/data=!...

From looking at the company website[0] I'd assume the goal could've been to get a better estimate about the total distance travelled during tracking analysis? Keeping that goal in mind, the error from the outliers was reduced significantly without causing too much disturbance on the accurate data. Nonetheless, including further measurements from speedo- and odometer in the sensor fusion at certain intervals would make this goal redundant and provide an even better estimate.

[0]: https://traconiq.ch/


For something to be unconventional, there needs to be the understanding of conventionality. The web is built on Hyperlinks and UI/UX are its languages of interaction, whose patterns have been learned throughout years. The big challenge in advancing that language is to not interrupt established patterns, so the interaction won't be perceived as broken. Turning a Hyperlink into a two-click experience is quite a statement, so people respond.

Besides, "amazing art stuff"? Please, it's an aggregator that links to experiments in interaction design.


A pretty unconventional way to prevent more than 1000 submissions, I guess.

Just fyi: https://news.ycombinator.com/formatdoc

> Text after a blank line that is indented by two or more spaces is reproduced verbatim. (This is intended for code.)

If you'd want monospace you should indent the snippet with two or more spaces:

  from typing import Protocol, TypeVar
  
  T_co = TypeVar("T_co", covariant=True)
  
  class Indexable(Protocol[T_co]):
    def __getitem__(self, i: int) -> T_co: ...
  
  def f(x: Indexable[str]) -> None:
    print(x[0])

Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: