frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Making RAM at Home [video]

https://www.youtube.com/watch?v=h6GWikWlAQA
265•kaipereira•1d ago•67 comments

ChatGPT Images 2.0

https://openai.com/index/introducing-chatgpt-images-2-0/
767•wahnfrieden•13h ago•582 comments

Acetaminophen vs. ibuprofen

https://asteriskmag.com/issues/14/the-mystery-in-the-medicine-cabinet
325•nkurz•1d ago•194 comments

Contact Lens Uses Microfluidics to Monitor and Treat Glaucoma

https://spectrum.ieee.org/smart-contact-lens-glaucoma-microfluidics
15•pseudolus•2d ago•0 comments

Laws of Software Engineering

https://lawsofsoftwareengineering.com
971•milanm081•21h ago•461 comments

Diverse organic molecules on Mars revealed by the first SAM TMAH experiment

https://www.courthousenews.com/preserved-for-billions-of-years-organic-compounds-found-on-mars/
64•geox•22h ago•2 comments

SpaceX says it has agreement to acquire Cursor for $60B

https://twitter.com/spacex/status/2046713419978453374
558•dmarcos•10h ago•664 comments

The Vercel breach: OAuth attack exposes risk in platform environment variables

https://www.trendmicro.com/en_us/research/26/d/vercel-breach-oauth-supply-chain.html
304•queenelvis•15h ago•109 comments

Garbage Collection Without Unsafe Code

https://fitzgen.com/2024/02/06/safe-gc.html
25•foota•3d ago•2 comments

XOR'ing a register with itself is the idiom for zeroing it out. Why not sub?

https://devblogs.microsoft.com/oldnewthing/20260421-00/?p=112247
52•ingve•1h ago•47 comments

Britannica11.org – a structured edition of the 1911 Encyclopædia Britannica

https://britannica11.org/
278•ahaspel•14h ago•98 comments

Windows Server 2025 Runs Better on ARM

https://jasoneckert.github.io/myblog/server-2025-arm64/
117•jasoneckert•3d ago•96 comments

Meta to start capturing employee mouse movements, keystrokes for AI training

https://www.reuters.com/sustainability/boards-policy-regulation/meta-start-capturing-employee-mou...
519•dlx•14h ago•386 comments

Changes to GitHub Copilot individual plans

https://github.blog/news-insights/company-news/changes-to-github-copilot-individual-plans/
426•zorrn•1d ago•165 comments

Stephen's Sausage Roll remains one of the most influential puzzle games

https://thinkygames.com/features/10-years-of-grilling-stephens-sausage-roll-remains-one-of-the-mo...
185•tobr•3d ago•96 comments

Fusion Power Plant Simulator

https://www.fusionenergybase.com/fusion-power-plant-simulator
150•sam•17h ago•97 comments

Framework Laptop 13 Pro

https://frame.work/laptop13pro
1213•Trollmann•14h ago•608 comments

Cal.diy: open-source community edition of cal.com

https://github.com/calcom/cal.diy
195•petecooper•14h ago•51 comments

Drunk post: Things I've learned as a senior engineer (2021)

https://luminousmen.substack.com/p/drunk-post-things-ive-learned-as
131•zdw•8h ago•89 comments

CrabTrap: An LLM-as-a-judge HTTP proxy to secure agents in production

https://www.brex.com/crabtrap
111•pedrofranceschi•16h ago•40 comments

Edit store price tags using Flipper Zero

https://github.com/i12bp8/TagTinker
331•trueduke•2d ago•305 comments

A printing press for biological data

https://www.owlposting.com/p/the-printing-press-for-biological
24•crescit_eundo•1d ago•0 comments

Rock carving facts – Tanum Sweden

https://www.tanumworldheritage.se/rock-carving-facts/?lang=en
3•janandonly•2d ago•0 comments

Hunting a 34 year old pointer bug in EtherSlip

https://www.brutman.com/Adventures_In_Code/EtherSlip_ARP/EtherSlip_ARP.html
27•mbbrutman•2d ago•4 comments

FBI looks into dead or missing scientists tied to NASA, Blue Origin, SpaceX

https://fortune.com/2026/04/21/scientists-disappear-die-nasa-space-blue-origin-spacex/
132•ineedasername•5h ago•52 comments

Some secret management belongs in your HTTP proxy

https://blog.exe.dev/http-proxy-secrets
21•tosh•2d ago•6 comments

Claude Code to be removed from Anthropic's Pro plan?

https://bsky.app/profile/edzitron.com/post/3mjzxwfx3qs2a
544•JamesMcMinn•11h ago•510 comments

Kuri – Zig based agent-browser alternative

https://github.com/justrach/kuri
21•sorcercode•6h ago•3 comments

Running a Minecraft Server and more on a 1960s UNIVAC Computer

https://farlow.dev/2026/04/17/running-a-minecraft-server-and-more-on-a-1960s-univac-computer
218•brilee•3d ago•36 comments

Show HN: VidStudio, a browser based video editor that doesn't upload your files

https://vidstudio.app/video-editor
271•kolx•20h ago•86 comments
Open in hackernews

Pwning the Ladybird Browser

https://jessie.cafe/posts/pwning-ladybirds-libjs/
332•todsacerdoti•11mo ago

Comments

snvzz•11mo ago
Of academic value, as ladybird has little in terms of sandboxing yet.

Cool regardless.

nneonneo•11mo ago
Even in a modern browser, a renderer exploit (the most sandboxed portion of the browser) gives you access to a large attack surface - the browser process via IPC, the kernel via syscalls, and loads of data from other websites.

So no, an exploit like this is not just “of academic value” even in a sandboxed browser.

esprehn•11mo ago
With site isolation there's not loads of other websites in the renderer these days at least.
saagarjha•11mo ago
Assuming your site isolation works, at least. Some browsers were having trouble with it until pretty recently.
cadamsdotcom•11mo ago
This is a big landmark. Ladybird has come far enough to be a worthy target for security research!
webprofusion•11mo ago
Always good to start the discussion but the article doesn't seems to link to an issue on the Ladybird github repo, which I would expect in the case of academic disclosure etc.

Obviously nobody is really using Ladybird yet and there will be many more such issues to address, so now is a good time to evaluate how to avoid such mistakes up front.

webprofusion•11mo ago
Ah the github links are indeed there, my bad, it's a good write up.
neilv•11mo ago
If this is all-new development, wouldn't it be good for the emphasis to be on correctness and security, as part of the design and coding itself?

That's something that you use fuzzing as one way to detect a failure of, not as the means of achieving correctness and security.

I'm not picking on Ladybird here specifically. Chrome and Firefox provide constant streams of security vulnerabilities. But it would be nice if Ladybird didn't start with the same problems that might be attributed to huge legacy code bases.

esprehn•11mo ago
Ladybird comes from Serenity OS which has a focus of having fun and being pragmatic while building everything from scratch incrementally.

They do plan to switch to Swift: https://ladybird.org/#:~:text=Why%20build%20a%20new%20browse...

I appreciate their pragmatism though, it's allowed them to catch up to other alternative browsers in WPT coverage very quickly.

neilv•11mo ago
OK, fun is valid. And it's good to have expectations set.

Open source people who are looking for a more trustworthy browser than Firefox will have to look elsewhere, though.

sebmellen•11mo ago
Elsewhere… where? WebKit?
GoblinSlayer•11mo ago
noscript
oesa•11mo ago
off topic, but I have never seen a link like yours before.

Today, I learned about Text Fragment Identifiers [0]. Thanks, very handy!

[0] https://web.dev/articles/text-fragments#text_fragments

rzzzt•11mo ago
Chrome and Edge have a context menu item to create a link like this when you select text ("Copy link to highlight").

Firefox 131 and up will highlight the relevant portion on the page but can't create new links in a user-friendly fashion.

TheDong•11mo ago
> But [firefox] can't create new links in a user-friendly fashion.

It's not built-in, but there is https://addons.mozilla.org/en-US/firefox/addon/link-to-text-...

LegionMammal978•11mo ago
Reentrancy bugs like this one are surprisingly common. Having reviewed lots of unsafe Rust code, unnoticed calls into outside code (that can then reenter your own code or modify your data structures, blowing everything up) is one of the most common soundness issues I've found across different projects.

The main solutions seem to be either restricting how possibly-invalidated data can be held (e.g., safe references in Rust), or having some coloring scheme (e.g., "pure" annotations) to ensure that the functions you call are unable to affect your data. Immutable languages can mitigate it somewhat, but only if you have the discipline to maintain a single source of truth for everything, and avoid operating on stale copies.

ramon156•11mo ago
the solution? #[deny(unsafe_code)]
Ygg2•11mo ago
Eh. It will work with your code but at some point your dependencies will have to dive into unsafe (e.g. calling C libs/kernel, SIMD, ASM by hand, etc.).

Minimize unsafe, auditing libs with Geiger, and minimizing outside dependencies to a few reliable vendors, is what is practically needed.

VWWHFSfQ•11mo ago
Any reasonably sophisticated web browser is going to require a decent amount of unsafe {} if only just for performance reasons. Obviously would be much easier to audit though.
gitroom•11mo ago
tbh i kinda love how they're just going for it and building from scratch but i always wonder how much focus on security upfront actually changes things long-term-you think building with fun in mind ends up missing critical stuff or does it keep devs more engaged
kavefish•11mo ago
With decades and decades of memory safety lessons in the books, it's hard to imagine how C++ was the language of choice when starting new browser from scratch in 2018.
ironmagma•11mo ago
Answer is here, although the article is outdated and the most recent news is that they are rewriting the browser at least in Swift.

https://awesomekling.github.io/Memory-safety-for-SerenityOS/

kragil•11mo ago
How is it outdated??

Their GitHub has 0,3% Swift code. They said they start once Swift 6 is out. It has been out for months. So either they abandoned Swift or haven’t really started or they are really really slow to start using it. All three options are against the article being outdated, wouldn’t you agree?

ironmagma•11mo ago
Because the article is from 2022 and says that they will use a custom language called Jakt which didn't pan out, it seems. Yes, I am also eager for the Swift rewrite to get off the ground.
pjmlp•11mo ago
Mostly because the author switched focus to yet another language, and eventually decided to focus on something else instead of programming languages.

https://github.com/sophiajt/june

circl_lastname•11mo ago
Current blockers to swift usage are found here: https://github.com/LadybirdBrowser/ladybird/issues/933 Rising tide lifts all boats, by trying to use Swift seriously, they're finding and helping fix bugs in the compiler
favorited•11mo ago
One of the primary Ladybird devs just gave a lightning talk at CppCon about porting their HTML parser from C++ to Swift.

https://www.youtube.com/watch?v=KCRx1jE6DnY

pjmlp•11mo ago
One would think the same of C, where exploits trace all the way back to Morris worm in 1988, that is 36 years of thinking the problem are the developers, not the language, with new projects being started every day still.

At least C++ has mechanisms to write safer code, provided one makes use of them, even if still there are issues.

To use a modern example renaming the JavaScript file extension to a Typescript one, only gets you so far.

Then one can make use of Typescript's type system, or switch to Elm to the next level.

pessimizer•11mo ago
> One would think the same of C

I'm pretty sure that everyone does and did, because almost nobody wrote a browser in C either, never mind in 2018.

NetSurf from 2002 is the only one I can find?

edit: I should say after the first set, because Lynx and Mosaic are C.

Jaxan•11mo ago
When they started, the plan was mostly to have fun and see how far you can get when creating an OS from scratch. So picking a language in which they are experienced makes sense in that context.
circl_lastname•11mo ago
The browser was not started with the idea of taking over the main focus of development, it was just another part of an already pretty large hobby OS project
yencabulator•11mo ago
Fine. With decades and decades of memory safety lessons in the books, it's hard to imagine how C++ was the language of choice when starting new operating system from scratch in 2018.
adamrt•11mo ago
It really isn't that hard to imagine someone starting a fun hobby project in the language they enjoyed and were the most comfortable with.
yencabulator•11mo ago
Dunno. It really is. Debugging memory corruption bugs in complex one-memory-space systems is very much not fun.
circl_lastname•11mo ago
Nothing a little printf (or dbgln as it is known as in Serenity-Ladybird land) can't fix
awesomekling•11mo ago
This is awesome! Really great write-up, and solid work by Jessie :^)

The Ladybird codebase is generally very defensive, but like every browser, our JavaScript engine is slightly less so (in the pursuit of performance.)

There are architectural lessons to learn here beyond just fixing the bugs found. We've since replaced these allocations (+ related ones) with callee-specific stack memory instead of trying to be clever with heap allocation reuse.

We're also migrating more and more of our memory management to garbage collection, which sidesteps a lot of the traditional C++ memory issues.

As others have mentioned, sandboxing & site isolation will make renderer exploitation a lot less powerful than what's demonstrated here. Even so, we obviously want to avoid it as much as possible!

payphonefiend•11mo ago
so is this gonna stay in c++ or are you still moving to swift
awesomekling•11mo ago
Whatever happens, large parts of the codebase + dependencies will be C++ (or C) for the foreseeable future.

We're working on integrating with Swift, but despite the team's earnest efforts, Swift/C++ interop is still young and unstable.

On a personal note, I'm increasingly feeling like "C++ with a garbage collector" might actually be a reasonable tool for the task at hand. Watching the development of Fil-C in this space..

soundnote•11mo ago
What'd be the effect of Swift be on the possibility of a Windows port? I know anything end user friendly is ages away, but I don't live in Apple land, and neither does most of the world. Apple has a monopoly on iOS and huge market share on Mac, and is still at 20% or something.

https://x.com/GregKamradt/status/1848045525473677314

https://x.com/wycats/status/973761496277704704

circl_lastname•11mo ago
The core Swift Lang has is being made more independent of Apple, and can be compiled for an increasing number of platforms thanks to the LLVM-based compiler
tough•11mo ago
You can even build swiftUI apps without opening Xcode at all nowadays (albeit no code signing)

which is great.

I never learned swift but I can add features easily now or create 1-day projects using swiftUI that makes great macOS native UI's.

the_mitsuhiko•11mo ago
I'm honestly not at all familiar with browsers but I really do wonder if a custom language wouldn't be a reasonable tradeoff. It's not all that insane as that is a path that has been walked before. For instance FoundationDB has their own syntax to manage their actor system which just transpiles to C++: https://github.com/apple/foundationdb/blob/main/flow/README....

V8 also has torque which I think to some degree also fits into that type of mindset.

davidgerard•11mo ago
> I'm honestly not at all familiar with browsers but I really do wonder if a custom language wouldn't be a reasonable tradeoff.

careful, last time someone said that we got Rust

int_19h•11mo ago
Out of curiosity, why not C# at this point? It's pretty hard to marry C++ with a high-performant garbage collector, since underlying language semantics does not allow for e.g. compacting GCs.
qingcharles•11mo ago
What makes Swift a better choice than C#?

C# is more platform independent. Has a well-tested GC.

safercplusplus•11mo ago
This particular memory vulnerability, as I understand it, was a result of a `ReadonlySpan<>` targeting a resizable vector. A simple technique used by the scpptool-enforced safe subset of C++ to address this situation is to temporarily move the contents of the resizable vector into a non-resizable vector [1] and target the span at the non-resizable vector instead.

Upon destruction, the non-resizable vector will automatically return the contents back to the original resizable vector. (It's somewhat analogous to borrowing a slice in Rust.)

While it wouldn't necessarily prevent you from doing the flawed/buggy thing you were trying to do, it would prevent it from resulting in a memory vulnerability.

[1] https://github.com/duneroadrunner/scpptool#xslta_vector-xslt...

awesomekling•11mo ago
Very interesting, I was not familiar with your project. Thanks for sharing it here!
qiu3344•11mo ago
Haven't seen anyone using dwm in a while. I forgot how lean and mean it is =)