HN user

nikitaga

1,392 karma

https://github.com/raquo

https://dev.to/raquo

https://laminar.dev

http://hnapp.com

https://twitter.com/raquo

Posts0
Comments259
View on HN
No posts found.

Employee Only: You cannot buy these in stores. They are sold exclusively to ASML employees with a strictly enforced “one per person” rule.

Wonder if they include this lego set as a gift with their real machines? Or are they like – our commercial agreement is worth $400M and not a lego set above that.

All this reactionary outrage in the comments is funny. And lame.

Yes, for the vast majority of the internet, serving traffic is near zero marginal cost. Not for LLMs though – those requests are orders of magnitude more expensive.

This isn't controversial at all, it's a well understood fact, outside of this irrationally angry thread at least. I don't know, maybe you don't understand the economic term "marginal cost", thus not understanding the limited scope of my statement.

If such DDOSes as you mention were common, such a scraping strategy would not have worked for the scraper at all. But no, they're rare edge cases, from a combination of shoddy scrapers and shoddy website implementations, including the lack of even basic throttling for expensive-to-serve resources.

The vast majority of websites handle AI traffic fine though, either because they don't have expensive to serve resources, or because they properly protect such resources from abuse.

If you're an edge case who is harmed by overly aggressive scrapers, take countermeasures. Everyone with that problem should, that's neither new nor controversial.

Scraping static content from a website at near-zero marginal cost to its server, vs scraping an expensive LLM service provided for free, are different things.

The former relies on fairly controversial ideas about copyright and fair use to qualify as abuse, whereas the latter is direct financial damage – by your own direct competitors no less.

It's fun to poke at a seeming hypocrisy of the big bad, but the similarity in this case is quite superficial.

This is great news, nice win for Scala.

It's a great language, I've been working with it for 10 years now. Full stack Scala with Scala.js on the frontend is so very nice. My experience is mostly in fintech & healthcare startups where the language helped us get correctness, refactorability, clarity, and high velocity at the same time without blowing up the team size.

Initially I learned Scala on the job, but I've been writing open source Scala for years since then. It's a cool language to learn and explore ideas in, since it has lots of elegantly integrated features (especially FP + OOP).

Scala may not be the #1 most popular language, and that's fine. Popular stuff surely gets the benefits of funding and attention, and sometimes lacking such support is really annoying, like a few years ago when Scala 3 was first released, the IDEs took a looong time to catch up. But I still choose Scala despite those occasional annoyances, even though I also have years of experience in JS / TS and other languages. It's just a much better tool for my needs.

^ This meme is from 10+ years ago when Scala was at the peak of its hype driven by the FP craze. Nobody seriously writes cryptic-symbolic-operator code like that nowadays. Scalaz, the FP library most notorious for cryptic operator/method names, hasn't been relevant for many years. Today everyone uses Cats, ZIO, or plain Tapir or Play, all of which are quite ergonomic.

I know all about their business models, yet I couldn't care less how much money Facebook gets from ad clicks. Them making a profit is not directly harming me.

The things that are harming me are a lot more complicated than that, but people don't have the attention span to be educated about such complex issues. It's easier than ever to spread "education" now. The fact that it doesn't stick is not some grand conspiracy – most people simply don't care.

The main reason for populism is that the incumbent governments do a consistently poor job satisfying their constituents' preferences and interests, so people get desperate to find something / someone different that might work better. Always has been, always will be, social media or not.

Example: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4230288

We haven't invented a governance structure yet that would be immune to this, although some are better than others. I'm sure the current social media algorithms are harmful as well. You can ban viral algorithms, but the hostile actors whose literal job it is to drive polarization / populism will just find other strategies to effectively deliver their message.

"Education" is nice and all, but millions of people keep smoking despite the obvious harm and decades of education, not to mention the many limitations, taxes, and bans. I mention smoking as an obviously-bad-thing that everyone knows is bad. Education succeeded, and yet, here we are, still puffing poison. But you can also look already-polarized political topics. There's been no shortage of education on those topics either, but if that worked well enough, we wouldn't be decrying populism right now.

How is MacOS as enshittified as Windows? It doesn't have ads, doesn't push AI on you, their online services are trivial to ignore once and never think about again, etc. I haven't tried Tahoe, and sure, its new glass UI is shit, but merely incompetent UI design is not "enshittification" and is not in any way equivalent to what Microsoft does in Windows.

stifles disagreement and debate.

When I append "reddit" to my google search query, I'm not looking for "disagreement and debate". I'm looking for specific information on non-political topics, such as repairing my car, finding a good product in the sea of garbage, or learning new techniques. Such topics are typically discussed cooperatively rather than adversarially. For this stuff, consensus-seeking is a feature not a bug, and where the consensus appears inadequate, I'm well capable of looking past the top post. Reddit's format is not perfect, but it's better than having to read through a 30-page thread in which most messages are irrelevant to most other messages. Such threads are linear only artificially through a UI that hides the structure of the underlying conversations.

If you don't like the upvotes aspect of reddit, we could settle on the same nested format but without sorting by upvotes. But with forums, we don't even have that.

Reddit's comments aren't one-liners because Reddit's format encourages that, it's because it's the most popular site where everyone goes. If forums were as widely popular, they would see the same people making the same comments there too.

The authenticity of old fashioned forums is often outweighed by their poor UX and in general terrible ergonomics. It's no wonder that so few people want to use them anymore. Reddit's "nested, collapsible comments sorted by upvotes" format is simply superior.

20 years after Reddit started, the best that the forums can offer is perhaps discourse.org, which is barely any better than traditional forums – sleeker UI for sure, but it's still fundamentally the same unworkable linear format. It's like sticking to magnetic tapes in the age of SSDs.

Even Facebook, one of the dumbest discussion platforms, has nested comments. Terribly implemented of course, but how does the platform designed for the lowest-common-denominator kind of user have more advanced discussion features than forums made for discussion connoisseurs? It is utterly baffling.

Comparing React to Web components is comparing apples to oranges.

I mean, yes, but you're the one making this comparison, saying that WCs lack reactivity etc.

Web Components are an extension of the DOM – a low level browser API. They are similarly low level. That's expected. I don't need or expect them to be something more.

I am happy that I can use any reactivity system I want to implement a Web Component. That's a feature, not a bug. Having implemented a reactivity system myself, I know that there isn't a perfect one, the design is full of tradeoffs, and I'd rather not have a blessed implementation in the browser, because it will inevitably turn out to be flawed, yet we won't be able to retire it because "we can't break the web". A blessed implementation like that would benefit from network effects just like React does, and would have all the same problems as React, plus the inability to rapidly innovate due to the browser's unique backwards compatibility concerns. I'd rather ship an extra 3KB and avoid all those problems.

If you don't want that, you gotta bring a wrapper or another reactivity library/framework.

Being able to use a different library with a component, instead of the component being tied to React, is the whole point.

React isn't 100x more popular because its reactivity system or any other feature is 100x better. Half the reason it's popular is network effects – too many frontend components / libraries are made React-only even though they don't need to be React-specific.

Those network effects are the trap, not the reactivity system that's as good as any other for the purpose of writing a Web Component. If you don't want to use simple and small tools like Lit.js, that's fine, but that's your choice, not a limitation of Web Components.

The point of Web Components is not to provide a blessed state management or virtual DOM implementation that will have to stay in JS stdlib forever, it's to make the components you author compatible with most / all UI libraries. For that goal, I don't know of a better solution.

Preferred syntax is whatever looks nicer to you. It's not really two different syntaxes, just one more flexible syntax where if you choose to go full braceless, it ends up looking like python. I personally like the new braceless python-like syntax.

Scala has two main camps, one is purist FP (cats / zio / etc.), another is plain Scala, banking on ergonomic OOP+FP fusion. Neither of those is the default. FP advocates are more vocal online but that's because they need a bunch of libraries (thus more OSS work) to make that approach work, whereas the other camp just uses plain Scala and simpler libraries that aren't reinvented every 5 years, so their online presence is not as apparent.

Scala is very much alive, it's just past the initial hype stage, well into the slope of enlightenment / plateau of productivity depending on which style of Scala one is into. It's now growing slower but based on more sustainable pragmatism instead of just hype.

Evolving Scala 1 year ago

The problem with overly abstract concepts is a problem of specific Scala functional programming libraries, and not of the Scala language itself, or of other, simpler Scala libraries (e.g. com-lihaoyi stuff, Play, my own Laminar on the frontend, etc.)

If you need to know category theory concepts like Monad / Semigroup / etc. in order to understand your code, you're not doing regular Scala, you're doing Haskell-style FP in Scala. Which is a popular choice that many people swear by, but is entirely optional. Personally I don't think the complexity of that approach is worth it, and we don't use any of that stuff at work, and still reap the benefits of Scala.

Scala is a true multi-paradigm language, it does not have a monoculture. Lots of people who use Scala don't use highly abstract FP libraries. I very much don't think that the OOP side of Scala is the language designers' concession for the sake of broad appeal. Seamless fusion of FP and OOP is the essence of Scala, and it works great for that without any third party libraries. The designers' attitude is evidenced by the libraries created by their companies (e.g. Play, Akka) and by the learning materials, both of which lean heavily on plain Scala without going off the deep end with FP libs.

Evolving Scala 1 year ago

Kotlin's adoption is not that much bigger than Scala, and it's no good to me, as it's heavily concentrated in the Android world, which is irrelevant to me. Among other things, that means that Kotlin.js is not as good as Scala.js, both itself and in terms of the ecosystem – and the quality of Scala.js is half the reason I'm using Scala in the first place.

Kotlin as a language is also closer to Java on the Haskell <---> Scala <---> Java spectrum. We just don't want to move in either direction on that spectrum, Scala sits perfectly where it makes sense to us.

It's interesting that some people here are saying that Java's recent improvements will eat into Scala's market, when actually, it seems that it will eat into Kotlin first.

Evolving Scala 1 year ago

I've worked both at a startup that used functional programming libraries pretty heavily, and a startup that is using as plain of a Scala as you can imagine (no cats / zios / kyos / etc. in sight), and both benefited greatly from Scala language itself. The rich, safe and sound type system, combined with ergonomic syntax and well thought out features make it very easy to both read and write code – and most importantly – to make massive changes with very high confidence – which is an absolute necessity in a fast moving startup where the business requirements evolve all the time, features are shipped urgently with some tech debt that needs to be effectively addressed later, etc.

In terms of talent there is definitely some self-selection as with any non-default tech stack. Scala is a sharp tool and there are both people who are attracted to it for the pragmatic utility of its sharpness, and people who are attracted to it for wanting to play with sharp things. Both types are smart but the latter group have given Scala a bad rep in the past for being too smart and thus writing code that was too clever for others to understand. But nowadays the general vibe in the talent pool is a lot more pragmatic.

Evolving Scala 1 year ago

We built full stack web applications: Scala on the JVM on the backend, and Scala.js on the frontend. For the frontend, used React.js (via Scala.js bindings) at one company, and my own Scala.js UI library Laminar at another. Mobile was implemented as a responsive web app. I've read that you can even use React Native from Scala.js, but we haven't needed that, so I haven't tried. The older React.js bindings were somewhat cumbersome, but the newer ones (slinky.dev) were great. The rest worked very well.

Working in a single language across frontend and backend is amazing, especially when the language is so nice. Sharing models, codecs, validations, etc. And again – all of that in a very friendly language. Scala's expressive yet safe type system is very good at describing the business domain, encoding constraints, etc.

The only weakness of Scala.js I would say is it takes a bit more effort to integrate with JS libs. The mechanism is the same as with Typescript – just need the type definitions, but in practice it needs a bit of manual work. It's not a big deal though because with Scala.js you don't really do the 200-npm-dependencies thing that so many JS projects are cursed with. Lots of stuff comes with the language or from nice Scala libraries, including immutable data structures, powerful collections, validations, state management, etc.

Scala has somewhat of a reputation for being complex, but the language itself is ecstatic in its simplicity and elegance. The problem historically lied in certain functional programming libraries that require a certain formal / academic mindset to work with. They did become more ergonomic and better documented with time, but those are still very advanced concepts for most devs. I did work with such a codebase, and I have to admit it was not the easiest. But that was before AI – nowadays it's a lot easier for me to figure out these things. But I don't need to, at my current job we don't use them. So I would advise to learn Scala the language before going off the deep end into hardcore FP libraries. That's a completely optional destination that you don't need to force onto yourself if that kind of style doesn't jive with you.

Speaking of AI, I've been asking both ChatGPT and more recently Claude about Scala 3 and about functional programming libraries, and they're pretty good. I don't "vibe code" so don't know about that, just asking for code snippets or for explanations.

Evolving Scala 1 year ago

I meant FP libraries like Cats Effect / FS2 / ZIO et al. – they don't really do the things that Akka / Pekko is very good at, such as multi-machine parallelism, but the conventional wisdom nowadays seems to be that it's easier to start with those libraries and progress to Pekko if you ever need that, rather than architect the system with Pekko from the start when you don't need its power.

I don't know if I personally agree with that, I've had a better experience with Akka (even raw actors) than with FP libraries, but what I mentioned is definitely the general vibe in the publicly active part of the community that's I'm observing. We gotta keep in mind that there are lots of companies and devs that never talk about what they're doing in public, so of course my perception is biased by that.

My own expertise is shifting more and more to the frontend / Scala.js these days, so please forgive/correct any inaccuracies.

Evolving Scala 1 year ago

It became less popular a long time ago as the hype of actors as a programming paradigm died down, and then eventually akka adopted non-OSS BSL license which made many users including us switch to Pekko (a community fork) which is still developed and maintained, but again, this branch of Scala evolution is quite past its prime. Scala offers more and arguably better libraries for working with concurrency now, and even cooler stuff is on the horizon with kyo / ox / caprese.

But akka aka pekko is still perfectly usable.

Evolving Scala 1 year ago

Scala has been very enjoyable and productive for me and the teams I've worked on. The first couple years of v2 -> v3 transition were a bit rough as the tooling and ecosystem was catching up, but now we happily use Scala 3 with no looking back. The language and ecosystem are evolving in a good direction, and I'm happy to play a small part in that with my open source libraries for Scala.js (which is the entire reason I got into Scala in the first place – so much simpler and safer than Typescript).

Scala is perhaps not going to replace Java in every old enterprise, but in my personal experience working for startups, it's been an awesome force multiplier for small teams who need to productively pump out safe and ergonomic code. Finance, health systems, etc. And yet it's also ergonomic and pleasant enough for me to eagerly use it in my non-mission-critical personal projects as well.

That does not make sense... In November, her visa was revoked at the border, when trying to enter the US. At that point, she was obviously turned around back into Canada. Then later, she was detained when trying to enter the US from Mexico in 2025.

So, how do you suggest she managed to enter the US after November in order to have remained there illegally? Did the CBP, who have just revoked her visa a few days/weeks prior, just let her in on a tourist visa? That does not sound very believable, even for the previous US administration.

And what do you suggest her plan was? Previously she was on TN work visa. You seem to think that after having her TN visa revoked, she managed to get into the US on a 90-day tourist visa instead (thus working there illegally), which is why she needed to run for the border after 3 months, and why she was detained when trying to re-enter. But what kind of plan is that – to run for the border every 90 days after having your TN visa revoked. That is such an obvious recipe for failure, nobody who employs an immigration lawyer – like that lady – would have gone ahead with it.

I've definitely seen other headlines overselling similar detention stories for rage bait, but I don't see much wiggle room in this case.

Clearly, eh? Spoken like someone who didn't get debilitating whiplash for years from being rear ended on a highway. My friend's vestibular system has been shot for 8 years and counting from that accident, and she still can't drive / bike / do much requiring balance/hand-eye coordination anymore. She was "lucky" this accident happened under the old system, she will at least get compensation ("will", because it's only now getting to trial, because the government insurance wouldn't pay what is due on its own, and the same government wouldn't fund the courts to provide a speedier resolution). If this accident happened today, she would have gotten peanuts that aren't enough to even offset the increased costs of life, let alone get any meaningful compensation for pain and suffering.

Do you want to tell me more about how you saving ~$500/year outweighs people like her being absolutely shafted under the new system? Please don't, I don't care. That's not why I commented.

The main purpose of my original comment wasn't to say that the new ICBC system is shitty – enough was said about that elsewhere already. It was to illustrate with a real life example that laws regarding liability can and are changed in very significant ways when the situation calls for it. Petty political reasons being as good a call as any, apparently, so I'm not worried about self-driving cars being stiffled by that. There's a sprinkle of "be careful what you wish for" in there as well, for those who see manufacturers' liability as a problem.

EDIT: Sorry, I think I misread your question. Let me answer it more directly:

Driver insurance in BC is offered by ICBC, a "crown corporation", i.e. a monopoly run by the government. You have to buy this insurance to drive in BC. This insurance gives you some benefits (healthcare and some small compensation) in case you get in an accident. As a matter of fact, those benefits are often not enough to make you whole. They pay much less for pain and suffering, loss of income, etc. than a court would grant you if you could sue. But – you can't sue anymore. So, who is there to make sure that the government-run insurance monopoly will make you whole? Nobody. Because you don't have the legal right to be made whole anymore. And since there are no checks on the government, the government does not pay enough. Because, why would they, if they don't have to? They only have to pay you as much as their policy says they should pay you. You can not challenge the policy on the basis that it does not make you whole, because you don't have the right to be made whole anymore.

--- Original comment:

Natural events are nobody's fault, that's why you aren't made whole, that's why you can't sue anyone for them, with or without insurance. [ETA: you can only sue your private insurance company for what they promised you, which may or may not make you whole, depending on coverage].

BC government made the "idiot rear ending you" scenario into a "natural event", so to speak, so that you can't sue the idiot, or their insurance, or anyone, to recover damages. You will only get what the government-run insurance monopoly will give you, which is not much.

This isn't directly about insurance. This is about the government declaring that liability for most traffic accidents does not exist anymore. Which is the part that is relevant to this conversation. If liability can be extinguished wholesale for all drivers like this, then this can surely be done for self-driving cars. Not saying that it's a good idea, just that this option is on the table.

In the old system, you only had to sue for compensation if / when the government wasn't offering you what you were due. It was entirely the government's choice to drag so many cases through the courts instead of paying. But at least the judicial system eventually made you whole, if you were able to navigate it. If the government cared about us so much that they wanted to fix the system, they could have simply chosen to pay what was due from the start, saving everyone the time and the legal expenses. But they didn't.

Fraud was another concern. Huge payouts from parking lot whiplash were indeed not uncommon, with the help of lawyers. However, I fail to see how the new system was the best solution for that. They went from one extreme, where fraud was rampant, to another extreme, where we have no rights. At least the first extreme cost us only a few hundred bucks per year on average. The new extreme saves you a bit of money but leaves people injured for life with no meaningful compensation for the harm done to them.

Kind of beside the point though, regarding self-driving cars.

This is why I have doubts about self driving cars, it changes the accountability from the driver to the manufacturer. And I have a hard time believing the manufacturer would want that liability, no matter how well they sold.

Under current laws, perhaps. But you can always change the laws to redirect or even remove liability.

For example, in BC, we recently switched to "no-fault insurance", which is really a no-fault legal framework for traffic accidents. For example, if you are rear-ended, you can not sue the driver who hit you, or anyone for that matter. The government will take care of your injuries (on paper, but people's experiences vary), pay you a small amount of compensation, and that's it. The driver who hit you will have no liability at all, aside from somewhat increased insurance premiums. The government-run insurance company everyone has to buy from won't have any liability either, aside from what I mentioned above. You will get what little they are required to provide you, but you can't sue them for damages beyond that.

At least, you may still be able to sue if the driver has committed a criminal offence (e.g. impaired driving).

Don't believe me? https://www.icbc.com/claims/injury/if-you-want-to-take-legal...

This drastic change was brought upon for us to save, on average, a few hundred dollars per year in car insurance fees. So now we pay slightly less, but the only insurance we can buy won't come close to making us whole, and we are legally prevented from seeking any other recourse, even for life-altering injuries or death.

So, rest assured, if manufacturers' liability becomes a serious concern, it will be dealt with, one way or another. Bigger changes have happened for smaller reasons.