HN user

akling

3,874 karma

https://twitter.com/awesomekling

Posts41
Comments187
View on HN
nwex.de 2y ago

Website implements HTML parser spec to tokenize and highlight its own source

akling
3pts0
en.wikipedia.org 2y ago

Branch/Call/Jump Compression

akling
2pts0
github.com 2y ago

OpenTendo: Open-Source Hardware recreation of the original NES motherboard

akling
1pts0
blog.polar.sh 2y ago

Contributor Rewards with Polar

akling
2pts0
www.youtube.com 2y ago

The Typographic Legacy of Microsoft [video]

akling
2pts0
www.youtube.com 3y ago

Ladybird: Building a new browser from scratch [video]

akling
4pts0
copypaste.wtf 3y ago

TT2020: Hyperrealistic Typewriter Font

akling
1pts0
linus.dev 3y ago

Ladybird Browser: Year in Review (2022)

akling
10pts0
docs.google.com 3y ago

An introduction to the LibJS JavaScript engine [slides]

akling
2pts0
twitter.com 3y ago

LibJS from SerenityOS now ahead of all other JavaScript engines on test262

akling
3pts0
twitter.com 4y ago

The oldest surviving line of Unix code is from 1979 in FreeBSD

akling
9pts1
twitter.com 4y ago

The SerenityOS Browser passes the Acid3 test

akling
24pts0
en.wikipedia.org 4y ago

SerenityOS

akling
5pts2
www.qt.io 4y ago

Qt Digital Advertising Platform

akling
1pts0
linus.dev 4y ago

Implementing the Temporal Proposal in LibJS

akling
2pts0
www.jerkeby.se 4y ago

Gadget reduction using zero-call-user-regs

akling
1pts0
blog.jetbrains.com 5y ago

C++ Ecosystem in 2021

akling
3pts0
cacm.acm.org 5y ago

Why Computing Students Should Contribute to Open Source Software Projects

akling
3pts0
developer.mozilla.org 5y ago

MDN Plus

akling
5pts0
kristoff.it 5y ago

Playing the Open Source Game

akling
24pts2
github.com 5y ago

Cisco/systemf: Prepared statement support for the system() command

akling
8pts0
docs.microsoft.com 5y ago

The Windows Tone

akling
2pts1
github.com 5y ago

Let's write synchronization primitives (2020)

akling
2pts0
serenityos.org 5y ago

SerenityOS: The Second Year

akling
5pts0
peterdn.com 5y ago

Print “Hello, QBasic Nostalgia ”

akling
2pts0
github.com 6y ago

SerenityOS Browser Process Architecture

akling
2pts0
awesomekling.github.io 6y ago

Smarter C/C++ inlining with __attribute__((flatten))

akling
3pts0
twitter.com 6y ago

SerenityOS desktop ported to OpenBSD

akling
4pts0
awesomekling.github.io 6y ago

Pledge() and Unveil() in SerenityOS

akling
110pts28
github.com 6y ago

CTF writeup: First published SerenityOS kernel exploit

akling
2pts2

Great read! This reminds me of a macOS app I made for my wife a few years back. It keeps track of the opening hours of all her favorite shops, and she can click a menu bar icon to see how long until each one closes today. It also warns if it's currently peak/rush hour for the shop, since she prefers to go when it's less crowded.

It's a simple Qt app that uses a text file for data storage. I wrote it after noticing that she had trouble remembering which shops are open when. I asked her what to call it, and she said "Gladiolus, like the flower" so I named it Gladiolus.

I can say for sure I've never had a more appreciative client as a programmer than the one user of Gladiolus :^)

It depends on what you enjoy doing, and how much time you really have.

Good bug reports & reduced test cases are always amazingly valuable. Perhaps you have a home page of your own? You can open it in Ladybird and see if you hit some problems. Maybe we throw a surprising JavaScript exception. Maybe our CSS layout isn't quite right.

If you can then reduce the problem to a minimal HTML/CSS/JS example, that's often enough for someone working on the engine to go ahead and find a fix pretty easily. :)

I've been broadcasting my programming sessions on YouTube since 2019. I have over 1000 videos here: https://www.youtube.com/@awesomekling

Over time, my audience grew, and some people really liked my videos, so I first made a Patreon and later a GitHub Sponsors for those who wanted to help me turn it into a full-time job someday.

Thanks to growing support, I was eventually able to make it a full-time job. For more details on this journey, I wrote about it here: https://awesomekling.substack.com/p/i-quit-my-job-to-focus-o...

Tobi (Shopify CEO) has been supporting my open source work via GitHub Sponsors since early 2022, so I reached out to him and said (very paraphrased) "I'm gonna start pushing harder on Ladybird, would Shopify want to be an official sponsor?"

It currently runs on SerenityOS, Linux and macOS. And Windows with WSL (I know, I know..)

We’ve also seen screenshots of Ladybird on FreeBSD, Haiku, and even Android at one point. Those are not maintained though, but we’ll come back to them eventually I’m sure :)

Thank you!

Indeed, all of these large sponsorships so far have been specifically for Ladybird development.

That’s also what I’ve been personally focusing on for many months already, so nothing really changes about my day-to-day.

The main new thing this enables is hiring more full-time engineers to work on the browser. (Still have details to figure out here though!)

That said, keep in mind that 99% of work on Ladybird also improves SerenityOS, since they are part of the same mega-project. :)

Hello friends! I’m really happy to have Shopify putting their faith in our little project like this :)

If you’d like a quick intro to the Ladybird project, I presented it at a conference earlier this month: https://youtu.be/De8N1zrQwRs

Huge thanks to Mike, Tobi and the other folks at Shopify who hooked this up. <3

Because now you're holding a reference to `x` which is supposed to be protected by a mutex, even after the mutex is unlocked.

With the lambda-only API, it's much harder to make this mistake, since a temporary reference like this will still go out of scope at the end of the lambda expression.

After sketching this out, it's nice that this:

    auto x = state.with([](auto& state) { return state.x; });
Becomes this:
    auto x = state.locked()->x;
But it also creates this very accessible footgun:
    auto& x = state.locked()->x;
Where it's way too easy to bind a reference to something that should be protected by the lock, but now isn't. So I'm not sure this is a great idea anymore.

That's right! It's a callback to Slackware, which was the first Linux distribution I used as a kid. The release notes for Slackware 4.0 ended with "Have fun! :^)" which I always thought had a great vibe.

I find it neat that the code doesn't have to enumerate all the possible platforms it might be compiled on, and instead just takes something the compiler already provides and tweaks it.

But yes, the "cute" "hack" aspect is the primary endearing factor :^)

This is super exciting! It's been a privilege to watch Linus grow from a C++ noob to a competent browser developer (and TC39 invited expert!) I can't tell you how proud I am of him.

Please consider supporting Linus on this journey! :^)

You are already powerful enough! Some of our most active developers today didn't even know C++ when they started. If you're interested, look for something small that annoys you, and then see if you can't figure out enough of the code to fix it. :^)