120Hz limit for high refresh rate support seems strange. The most common refresh rate for high refresh rate monitors is 144Hz, and faster refresh rates are available. If you run a 120fps animation on a 144Hz monitor you'll get duplicated frames, which negates a large part of the benefit.
hyperbrainer · 44m ago
My first thought was that this was done with consideration for mobile phones, since many higher-end models use 120 Hz displays, but Ladybird does not seem to support mobile for now.
> Websites using requestAnimationFrame now render at up to 120Hz on supported hardware
But the phrasing of it about "can now" suggests to me that this may simply be a performance issue too. They changed it from 60 to 120. Perhaps in the future they can go from 120 to 144 or even 240.
samuell · 1h ago
On Twitter, Andreas points out that his Keynote Presentation on the Ladybird Browser on the FUTO conference in Texas earlier in the year, might be the best current introduction to the project:
This is such an important project, to keep the big corporations from completely controlling the future of the web.
And it doesn't hurt that Andreas seems to be such a nice, humble guy.
larodi · 1h ago
Interesting whether guys employ LLM to speed up development. Starting a new browser just like this would be very bold decision like 15 years ago, now seems like a reasonable thing to do actually.
RadiozRadioz · 1h ago
Would have to be at the hands of an already skilled practitioner. Average Joe programmer setting out to build a browser with Copilot will end badly. Big-picture architecture and discipline is too important with this level of complexity.
net01 · 1h ago
Most of the guys in the LB project don't use LLM's, even though it extremely spec-driven, because C++ is not great with AI for some reason.
hyperbolablabla · 1h ago
But Andreas does fairly heavily, if you watch his code VODs you see that he leans on copilot often.
SpecialistK · 43m ago
I haven't watched the VODs myself but I am curious as to the nature of the Copilot use - is it a fancy autocomplete, a 2nd look at code he's already written, or is it generating large parts of the code?
The SerenityOS project literally has "NIH syndrome" at its core ["the SerenityOS project, which has a strong culture of writing everything from scratch.", https://ladybird.org/#faq] so I would expect a degree of skepticism of AI code generation.
But there was the post semi-recently about Cloudflare developers shipping a mostly-AI-generated software, overseen by real devs [https://news.ycombinator.com/item?id=44159166] Perhaps Andreas' use of Copilot is a similar thing, where he saves keystrokes and finds errors in the generated output with his own experience. I'll go watch some VODs.
rzzzt · 1h ago
With some "Thank you, Copilot"-s sprinkled in to spare him in the robot uprising universe.
therein · 1h ago
A comment that could apply to anything. Notice how nobody except for your subthread here is talking about AI. This thread is not about AI or LLMs, for a good reason.
net01 · 2h ago
Here's a guide to help you get started contributing:
Compile it yourself (it takes 15-20 minutes to fully compile) and test it on a website. Compare it to Firefox or Chrome and see what's wrong. Fix it and submit a PR.
I tried contributing but its too c++-y for me to understand it unfortunately.
net01 · 1h ago
This is the way to start learning.
Look at a WPT test and try to focus on it.
Look at the web spec
Ask questions in the Discord about where it would be, and people are gladly willing to help.
:)
Timwi · 2h ago
It is so amazing and wholesome to see a huge team of people come together and just collaborate on something they are passionate about and seriously believe in. I'm very hopeful that Ladybird will get to the point where we can use it as a main browser.
net01 · 1h ago
Compile it yourself (it takes 15-20 minutes to fully compile) and test it on a website. Compare it to Firefox or Chrome and see what's wrong. Fix it and submit a PR.
I did actually watch a friend compile and run it, and we tried it on a couple of simple web pages and were impressed with the results!
However, there are two barriers to me building it myself and submitting PRs. The first is that it's not officially supported to build or run on Windows, so I'd have to get familiar with WSL first or set up a dual-boot environment.
The second is that it's written in the obsolete and unusable language of C++. I would have loved an opportunity here to get into Rust or something, but C++ has proven itself hazardous to my mental health, so I'm staying away from it.
0points · 10s ago
Those are two you-problems.
robin_reala · 40m ago
There’s always the option of contributing to Servo if you’re interested in Rust and browser engineering.
phito · 1h ago
You forgot the enormous learning curve of understanding how browsers work and how to write proper code in Ladybug that doesn't waste the maintainers´ time.
Last time I tried, I couldn't find a website that worked with it. Where do you even begin contributing to such a large, complex, very much WIP project? The barrier to entry is daunting.
barkingcat · 50m ago
When it comes to larger projects, first:
- you don't need to understand the whole in order to help
the kind of bugs you can start with are like :
- this icon is a bit weird, it's off centre by 2px - how do I add 2 pixels to this icon? either by moving it or by changing the underlying image asset? if I'm moving it, what is the subroutine that paints it? if I'm changing the image asset itself, where is it stored? (is it in a packed store? or is it just a plain file, etc)
- when I click this button, trace the pathway - it's supposed to add to history and turn blue. is it doing that?
etc.
For large projects, start super small and work your way out from there.
saagarjha · 55m ago
Pick a site that almost works on it and then fix it to fully work?
therein · 1h ago
>Last time I tried, I couldn't find a website that worked with it.
That was the case for me last time I tried it as well, which was a few months ago. Tried it again yesterday and I could load many pages. Could even render complex real life pages like YouTube.
I recommend anyone to build it themselves. It is a very simple and smooth experience.
phito · 2m ago
Amazing, going to try it again right now. I had also tried a few months ago.
perching_aix · 42m ago
Why the commanding tone?
pmkary · 2m ago
You guys are on fire!
edent · 1h ago
I wonder if Ladybird will ever become a member of the WHAT-WG steering group. It would be nice to see more / any independent voices on there.
Pooge · 1h ago
For some reason I can't find the RSS feed for the newsletter; anyone that did who could post it here? I can only find the one for the "announcements"—which seem a lot less relevant to follow the progress of the project.
If their blog has an RSS feed, that would be great for people who want to follow their work.
haunter · 1h ago
Why Discord though? Truly independent project, keep big corps away, future of the web at stake here yada yada yet using the most walled garden of walled gardens. If there is no publicly accessible and searchable archive then might as well not exist.
mnmalst · 1h ago
I think Andreas made a comment about this in some of his videos along the lines of: It's where the most people are.
42lux · 1h ago
Because it's chat if you treat it like a knowledge base it's on you.
bowsamic · 17m ago
Andreas has made it clear he’s not interested in free software politics. That’s not his battle
> The ECMAScript/JavaScript language itself, however, exposes characters according to UCS-2, not UTF-16.
The native JS semantics are UCS-2. Saying that it's UTF-16 is misleading and confuses charset, encoding and browser APIs.
Ladybird is probably implementing support properly but it's annoying that they keep spreading the confusion in their article.
dzaima · 54m ago
It's not cleanly one or the other, really. It's UCS-2-y by `str.length` or `str[i]`, but UTF-16-y by `str.codePointAt(i)` or by iteration (`[...str]` or `for (x of str)`).
Generally though JS's strings are just a list of 16-bit values, being intrinsically neither UCS-2 nor UTF-16. But, practically speaking, UTF-16 is the description that matters for everything other than writing `str.length`/`str[i]`.
grishka · 39m ago
And most mainstream GUI toolkits are, as well. It can be said that UTF-16 is the de-facto standard in-memory representation of unicode strings, even though some runtimes (Rust) prefer UTF-8.
> Websites using requestAnimationFrame now render at up to 120Hz on supported hardware
But the phrasing of it about "can now" suggests to me that this may simply be a performance issue too. They changed it from 60 to 120. Perhaps in the future they can go from 120 to 144 or even 240.
https://www.youtube.com/watch?v=9YM7pDMLvr4
And it doesn't hurt that Andreas seems to be such a nice, humble guy.
The SerenityOS project literally has "NIH syndrome" at its core ["the SerenityOS project, which has a strong culture of writing everything from scratch.", https://ladybird.org/#faq] so I would expect a degree of skepticism of AI code generation.
But there was the post semi-recently about Cloudflare developers shipping a mostly-AI-generated software, overseen by real devs [https://news.ycombinator.com/item?id=44159166] Perhaps Andreas' use of Copilot is a similar thing, where he saves keystrokes and finds errors in the generated output with his own experience. I'll go watch some VODs.
https://github.com/LadybirdBrowser/ladybird/tree/master/Docu...
Here are the latest Web Platform (WPT) tests:
https://wpt.fyi/results/?run_id=6292901677236224
There is a Discord if you want to ask questions:
https://discord.gg/c8JEZkDvtY
Compile it yourself (it takes 15-20 minutes to fully compile) and test it on a website. Compare it to Firefox or Chrome and see what's wrong. Fix it and submit a PR.
how to build Ladybird https://github.com/LadybirdBrowser/ladybird/blob/master/Docu...
Look at a WPT test and try to focus on it.
Look at the web spec
Ask questions in the Discord about where it would be, and people are gladly willing to help. :)
how to build ladybird https://github.com/LadybirdBrowser/ladybird/blob/master/Docu...
However, there are two barriers to me building it myself and submitting PRs. The first is that it's not officially supported to build or run on Windows, so I'd have to get familiar with WSL first or set up a dual-boot environment.
The second is that it's written in the obsolete and unusable language of C++. I would have loved an opportunity here to get into Rust or something, but C++ has proven itself hazardous to my mental health, so I'm staying away from it.
Last time I tried, I couldn't find a website that worked with it. Where do you even begin contributing to such a large, complex, very much WIP project? The barrier to entry is daunting.
- you don't need to understand the whole in order to help
the kind of bugs you can start with are like :
- this icon is a bit weird, it's off centre by 2px - how do I add 2 pixels to this icon? either by moving it or by changing the underlying image asset? if I'm moving it, what is the subroutine that paints it? if I'm changing the image asset itself, where is it stored? (is it in a packed store? or is it just a plain file, etc)
- when I click this button, trace the pathway - it's supposed to add to history and turn blue. is it doing that?
etc.
For large projects, start super small and work your way out from there.
That was the case for me last time I tried it as well, which was a few months ago. Tried it again yesterday and I could load many pages. Could even render complex real life pages like YouTube.
I recommend anyone to build it themselves. It is a very simple and smooth experience.
The native JS semantics are UCS-2. Saying that it's UTF-16 is misleading and confuses charset, encoding and browser APIs.
Ladybird is probably implementing support properly but it's annoying that they keep spreading the confusion in their article.
Generally though JS's strings are just a list of 16-bit values, being intrinsically neither UCS-2 nor UTF-16. But, practically speaking, UTF-16 is the description that matters for everything other than writing `str.length`/`str[i]`.