Alexander Kalenik

24 posts

Alexander Kalenik

Alexander Kalenik

@KalenikW

building @ladybirdbrowser

Krakow Beigetreten Kasım 2015
276 Folgt386 Follower
Alexander Kalenik retweetet
Andreas Kling
Andreas Kling@awesomekling·
Nice thing about using Rust in @ladybirdbrowser: it becomes significantly easier to parallelize things when you have confidence that they're not racy! Here's what it looks like when we distribute JS parsing to a thread pool instead of parsing synchronously on the main thread:
Andreas Kling tweet media
English
17
28
701
37.1K
Alexander Kalenik retweetet
Andreas Kling
Andreas Kling@awesomekling·
We switched all our network requests in @ladybirdbrowser to be unbuffered, which means we can now see ChatGPT responses incrementally as they come in! Props to @KalenikW for fixing this (and all the bugs it uncovered)!
English
9
13
845
83.8K
Alexander Kalenik
Alexander Kalenik@KalenikW·
seeing platform differences from this angle makes it clear why i usually have a better software experience on mac. it's simply easier to build for.
English
0
0
2
953
Alexander Kalenik
Alexander Kalenik@KalenikW·
more complicated apis compared to mac counterparts, and, more importantly, it's harder to make sure everything works consistently on different hardware, especially when you are a small team.
English
1
0
1
1.1K
Alexander Kalenik
Alexander Kalenik@KalenikW·
working on graphics in ladybird, it was surprising how hard it is to deliver something consistent on linux vs mac. currently our linux build lags behind both feature & performance wise, e.g. webgl is only supported on mac at the moment and
English
1
0
5
1.4K
Alexander Kalenik
Alexander Kalenik@KalenikW·
I've added basic pointer events dispatch and fixed a few issues with CSSStyleDeclaration. Now, it's possible to paint shapes on excalidraw.com. Implementing missing features for open-source web apps is so much easier than dealing with minified production websites.
English
1
7
47
6.5K
Alexander Kalenik
Alexander Kalenik@KalenikW·
It's possible to be productive programmer when you can't type fast It's possible to be productive programmer if you don't use IDE It's IMPOSSIBLE to be productive programer if you don't have extensive test suite to catch regressions
English
1
1
12
1.7K
Alexander Kalenik
Alexander Kalenik@KalenikW·
I checked a website saved couple months ago as a "nice image decoding stress test". Apparently, the combination of switching to libwebp for animated WebP decoding and using Skia for rasterization helped a lot there.
English
0
0
8
1.4K
Alexander Kalenik
Alexander Kalenik@KalenikW·
@mrunix0 yes, we use skia for webpage and canvas rasterization, although we still have a lot of work to do to efficiently coordinate painting from the LibWeb side
English
0
0
6
752
Mr.UNIX
Mr.UNIX@mrunix0·
@KalenikW Hasn't Ladybird switched to SKIA as a graphics engine?
English
2
0
0
931
Alexander Kalenik
Alexander Kalenik@KalenikW·
I tried to open Google Maps in Ladybird and was surprised by how not bad at all we are doing there even without WebGL or GPU-accelerated canvas!
English
2
13
289
27.1K
Alexander Kalenik
Alexander Kalenik@KalenikW·
after doing more research, it turned out o1's speculations were right. it just didn't know this thing named "The percentage height calculation quirk" and there is a spec for it #the-percentage-height-calculation-quirk" target="_blank" rel="nofollow noopener">quirks.spec.whatwg.org/#the-percentag…
English
1
0
2
472
Alexander Kalenik
Alexander Kalenik@KalenikW·
frustrated trying to understand how engines resolve CSS percentages I reached out to o1. really impressed! not sure about the speculative part about how engines work, but the info based on the spec seems solid and even links to the relevant section! chatgpt.com/share/66f6c2f9…
English
1
0
2
803
Alexander Kalenik
Alexander Kalenik@KalenikW·
Ladybird is almost capable of handling my daily github workflow. recently I fixed a performance issue where we were incorrectly invalidating layout on every scroll change in "File changes" page. it's still sluggish but good enough to review a small PR.
English
2
6
193
14K
Alexander Kalenik
Alexander Kalenik@KalenikW·
I'm not sure if it was intentional or a design mistake with "overflow", but newer CSS properties like "transform" and "clip-path" force an element to establish a stacking context, making implementation much simpler.
English
0
0
0
382
Alexander Kalenik
Alexander Kalenik@KalenikW·
currently, that's not true, meaning each element within a stacking context could potentially have a different containing block and, therefore, a different clip rectangle and scroll offset.
English
2
0
1
481
Alexander Kalenik
Alexander Kalenik@KalenikW·
If I could make just one change to the CSS standard, it would be ensuring elements with "overflow: hidden" and "overflow: scroll" automatically establish a stacking context.
English
1
0
4
900
Alexander Kalenik
Alexander Kalenik@KalenikW·
this is totally fine until you try to speed things up with optimizations like scrollable layer compositing. then, it becomes frustrating when one layer can be split into three simply because it's interleaved with an absolutely positioned element.
English
0
0
1
342