frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

New powerful space object 'Punctum' doesn't fit into any known category

https://www.livescience.com/space/astronomy/scientists-may-have-found-a-powerful-new-space-object...
1•wjSgoWPm5bWAhXB•2m ago•0 comments

Hydration status influences cortisol reactivity to acute psychosocial stress

https://journals.physiology.org/doi/abs/10.1152/japplphysiol.00408.2025
1•wjb3•2m ago•0 comments

Why Twin Studies Don't Separate Genes and Environment (2010)

https://www.psychologytoday.com/gb/blog/looking-in-the-cultural-mirror/201006/why-twin-studies-do...
1•rendx•5m ago•0 comments

Intel's "Clearwater Forest" Xeon 7 E-Core CPU Will Be a Beast

https://www.nextplatform.com/2025/08/26/intels-clearwater-forest-xeon-7-e-core-cpu-will-be-a-beast/
1•rbanffy•6m ago•0 comments

Show HN: Pinery – A native macOS app for self-publishing with Markdown

https://pinery.app
1•heberti•8m ago•0 comments

Not About How It Looks

https://newsletter.danhon.com/archive/s20e06-not-about-how-it-looks/
1•speckx•12m ago•0 comments

Nytek Calculator

https://play.google.com/store/apps/details?id=com.nyteklabs.nytekcalculator&hl=en_US
1•dandibizz•13m ago•1 comments

Stop Chat Control

https://mullvad.net/en/chatcontrol/stop-chatcontrol
3•nickslaughter02•13m ago•0 comments

Is DuckDB Ready for Primetime?

https://www.exasol.com/blog/exasol-vs-duckdb/
2•astigsen•15m ago•0 comments

Microsoft worked with FBI to prevent its employees from speaking out on Gaza

https://twitter.com/thestalwart/status/1960641807970091138
1•themgt•15m ago•0 comments

FCC Bars over 1,200 More Providers from Robocall Mitigation Database

https://www.fcc.gov/document/fcc-bars-over-1200-more-providers-robocall-mitigation-database
1•sbarre•18m ago•1 comments

Wife sent $57k to fake Elon Musk – technical security couldn't stop it

3•AvocadoPanic•19m ago•0 comments

Show HN: I Built Veo 3 Video Generator Almost 3X Cheaper

https://klifgen.app/
1•easyfree•21m ago•0 comments

GPS Signal Jamming = Flashpoints and Conflicts Around the World

https://gpsjam.org/
1•arkonrad•22m ago•1 comments

Open Source API for Google Meet Transcription (real time) launched in the cloud

https://vexa.ai/
2•DmitryGrankin•23m ago•0 comments

The Black Performer in Blackface

https://medium.com/luminasticity/the-black-performer-in-blackface-cb4786d85f3c
1•bryanrasmussen•23m ago•0 comments

Admin issues stop-work order for offshore wind project

https://arstechnica.com/science/2025/08/trump-admin-issues-stop-work-order-for-offshore-wind-proj...
1•rbanffy•25m ago•0 comments

Lisp from Nothing, Second Edition

http://t3x.org/lfn/index.html
1•nils-m-holm•27m ago•1 comments

AI Bubble?

https://economictimes.indiatimes.com/magazines/panache/mit-study-shatters-ai-hype-95-of-generativ...
1•mcmm•28m ago•1 comments

TreeStore: Endowing Your Data with Hierarchical Structure

https://www.blosc.org/posts/new-treestore-blosc2/
1•miohtama•29m ago•0 comments

Are we the ulimate form of AGI?

2•TrietNg•30m ago•0 comments

Men with links to Trump try to infiltrate Greenland

https://www.dr.dk/nyheder/indland/moerklagt/centrale-kilder-maend-med-forbindelser-til-trump-fors...
1•perihelions•32m ago•0 comments

The GitHub website is slow on Safari

https://github.com/orgs/community/discussions/170758
2•talboren•34m ago•1 comments

Executive Order – Improving Our Nation Through Better Design

https://www.whitehouse.gov/presidential-actions/2025/08/improving-our-nation-through-better-design/
2•pseudolus•35m ago•2 comments

Intel's Clearwater Forest E-Core Server Chip at Hot Chips 2025

https://chipsandcheese.com/p/intels-clearwater-forest-e-core-server
2•rbanffy•35m ago•0 comments

Denmark ending letter deliveries is a sign of the digital times

https://www.bbc.com/news/articles/c3v37plv2edo
2•pseudolus•40m ago•0 comments

New Update to Tracker – Manager for Bluesky: Bookmarks

https://blueskyapp.app/
1•pavlostze•40m ago•1 comments

Tips for better image generation in Gemini

https://blog.google/products/gemini/image-generation-prompting-tips/
1•logic_node•41m ago•1 comments

Sotasearch.ai – privacy-first research assistant (100% local)

https://sotasearch.ai/
1•vincenzod•42m ago•1 comments

Collection: The Journal of Computer Game Design (1987-1996)

https://library.gamehistory.org/repositories/2/resources/230
2•kleiba•43m ago•0 comments
Open in hackernews

Fenster: Most minimal cross-platform GUI library

https://github.com/zserge/fenster
145•klaussilveira•1d ago

Comments

thisislife2•1d ago
I chuckled at, "And, yes, it can run Doom!"
Forgret•1d ago
Hahaha, so it makes sense that DOOM can be run anywhere.
ijidak•1d ago
This is exciting. This is great for data visualization and financial applications!
rmonvfer•1d ago
Looks neat! I’m using C in a little side project and it would benefit from a simple GUI, let’s see what I can do with this. Also, just a recommendation but there isn’t even a single screenshot and I’d say that’s pretty important in a GUI library.
lstodd•1d ago
there are always tons of imgui-like libs.
CyberDildonics•1d ago
Could be cool, but if it is supposed to be a single header file it should say that instead of 'minimal'.

Also if it's just about getting a single window up with a pixel buffer it should say that.

Top priority should be getting screenshots on the github landing page.

phtrivier•1d ago
The problem is that the title says "cross-platform GUI", so some people would expect, you know, a GUI - windows, menus, text, buttons, sliders, scrollbars, input fields, etc...

This is more like a cross platform canvas on which you can draw.

Raylib was my goto for that, but an alternative can't hurt, I guess ?

CyberDildonics•18h ago
I don't think this is an alternative to raylib. The whole single header file is 13KB. It is basically a window, rgb buffer, and keyboard+mouse input.
vmsp•1d ago
There's an accompanying blog post at https://zserge.com/posts/fenster/

This author has some pretty cool stuff, like a tiny alternative to Firebase https://zserge.com/posts/pennybase/

unwind•1d ago
There is at least two bugs in the blog post, here:

Next simple task would be to fill the complete framebuffer with a solid colour:

    memset(f->buf, rgb, f->width*f->height*sizeoof(uint32_t));
The first is the obvious typo around `sizeof`, which I didn't even see at first (edit: this).

The second is that code will only work for 8-bit colors, i.e. only the 8 (technically CHAR_BIT, "a byte") least-significant bits of `rgb` will be used. This is a quirk of the `memset()` standard C function, which has the prototype:

    void *memset(void s[.n], int c, size_t n);
but then the man page [1] says:

The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c.

[1]: https://man7.org/linux/man-pages/man3/memset.3.html

naruhodo•21h ago
It will fill the screen with any of 256 shades of grey, for which r == g == b.
darccio•23h ago
Neato! It's nice to find zserge around. He built upon the idea of my static site generator Zas [0] to create his own zs [1][2] a few years ago. I think he's still using it :)

[0]: https://github.com/darccio/zas

[1]: https://github.com/zserge/zs

[2]: https://zserge.com/posts/new-site-generator2/

socalgal2•1d ago
> API is designed to be a polling loop

IMO this is a mistake. The most popular platform in the world does not allow using a polling loop. You can hack things to simulate it but eventually you'll run into where this will break for you. Better to start with something more forward compatible.

IcyWindows•1d ago
Which one are you referring to?
gt0•1d ago
I'm assuming they mean the web.
IcyWindows•10h ago
Oh! Of course
CyberDildonics•1d ago
The most popular platform in the world does not allow using a polling loop

I don't know what that means, but just because something else doesn't use a polling loop doesn't mean it's a mistake or the wrong fit.

Something like this so simple there is likely to be a lot that gets done inside the main loop, not the least of which is drawing into the buffer which is most of the point.

adastra22•1d ago
I assume you mean the web? I’m not sure why that’d be relevant to a C library.
socalgal2•1d ago
The Web runs C via WebAssembly, but if you're porting a polling loop app you're going to have a bad time. Conversely, if you start with an event driven app then you lose nothing but gain portability.
hyperhello•1d ago
Okay -- this code is pathologically minimal. If you modify it to use events on the web, will your work extend to all the other platforms?
socalgal2•17h ago
Yes, because it's trivial to make an event based loop from a polling loop but not visa-versa. The difference is that an event based loop needs to give up control to the OS. A polling loop does not. So if you have a polling OS you just write few lines to emit your own loop event.
Zardoz84•1d ago
why hell would you use a c library to make a gui on the web when you have HTML ?
dardeaup•1d ago
Maybe it was a personal goal?
animuchan•20h ago
This can be a forward compatibility concern: imagine we run a company, and our product is a GUI app written in C or C++.

If we also believe that the desktop GUI apps are a thing of the past, and in the future everyone wants only web apps, we'd want to pick a C library for the UI which allows building for the web, for the future scenario where we have to port the app to stay relevant.

The scenario might not materialize, but having a contingency plan sure feels nice.

animuchan•23h ago
Does it really not support this though? I imagine this could be made to work in a WebWorker for example, where you can run the busy loop, and actively let it ingest new messages each iteration.
vrighter•21h ago
Good thing this isn't a library designed for the web then! What's your point here? SDL (this project seems to be a subset of it, in terms of functionality) also uses a polling loop, and it's one of the most popular libraries of this sort around.
int_19h•1d ago
That's not a GUI. It's something a GUI might be implemented in.
dragonwriter•1d ago
> That's not a GUI. It's something a GUI might be implemented in.

A GUI library is indeed not a GUI, but a library with which one might implement a GUI.

Usually, a GUI library does have things like actual controls implemented, but then most GUI libraries tend to present themselves as something closer to complete than most minimal.

It is unusual but not unreasonable to describe the combination of cross-platform canvas + keyboard/mouse events + audio playback as the “most-minimal GUI library”.

benterix•23h ago
> A GUI library is indeed not a GUI, but a library with which one might implement a GUI.

This definition basically blurs the distinction between a "GUI library" and "graphics library". A GUI library is GTK, QT and others. A graphics library is usually divided into 3D like *GL variants and 2D like SDL or Skia or thousands of others (including this one).

layer8•13h ago
It’s not just a graphics library because they provide cross-platform access to input events, timers, as well as audio playback.
int_19h•11h ago
So does SDL, but that's still not a GUI lib. I'm honestly not sure what the best term for that is.
benterix•33m ago
In the past we used the term "multimedia library".
dragonwriter•11h ago
> A graphics library is usually divided into 3D like *GL variants and 2D like SDL

OpenGL (what I assume you are referring to by *GL) is both 2D and 3D; it also, as one might expect of purely a graphics library, doesn't provide control events or audio and considers that something else's problem.

SDL ("Simple DirectMedia Layer") does do things like control events and audio, but does not describe itself as a graphics library, but as "a cross-platform library designed to make it easy to write multi-media software, such as games and emulators."

aa-jv•23h ago
Its a graphics primitive library, which can be used to implement a user interface.
kookamamie•1d ago
A windowing library, not a GUI library.
aa-jv•23h ago
A graphics primitive library, not a windowing library.
naruhodo•1d ago
40 years ago, I cut my teeth on graphics programming in x86 assembly language and Turbo Pascal. Little graphical plots are just a really fun way to learn a language and programming concepts.

This is exactly what I want to practice some Zig programming.

lelanthran•1d ago
> Fenster /ˈfɛnstɐ/ -- a German word for "window".

Same in Afrikaans as well - "venster"[1] means window.

porphyra•1d ago
That's not surprising as Afrikaans is highly related to Dutch which is in turn highly related to German. In this case it all comes from the Latin fenestra.
kristianp•1d ago
> Latin fenestra.

Hence defenestrate, to throw out the window.

brabel•1d ago
Fönster in Swedish.
dvh•1d ago
Okno in Slovak
darccio•23h ago
Finestra in Catalan, and Langas in Lithuanian.
jraph•22h ago
Fenêtre in French.

Funny, English words often come from either German or French. Here where German and French agree, English is different.

https://en.wiktionary.org/wiki/window#Etymology (missing sources as of right now)

memsom•21h ago
Ah - you are conflating Germanic for German. Germanic is not equivalent to German. German (deutsch) is a national language, Germanic is a language family. German belongs to this family, but it is not the root of all Germanic languages. English and German sit in the West Germanic branch, the East Germanic was mostly Gothic (dead) and the North Germanic languages are Swedish/Danish/Norwegian/Icelandic/Faroese and various other non national languages. English is a West Germanic language, but it was massively influenced by Old Norse (North Germanic) and various Frenches (and Latin/Greek in technical terms) as well as probably the native British languages somewhat in grammar (the present continuous tense in English also happens in Welsh, and is not very Germanic.)

So - Window is Germanic. It comes from Old Norse 'vindauga', and the modern Norwegian Bokmal version is 'vindu'[1].

The German word for Window comes from Latin [2].

[1] https://en.wiktionary.org/wiki/vindu

[2] https://en.wiktionary.org/wiki/fenster

jraph•20h ago
yeah, ok, my picture of these things was a bit simplistic, thanks for the correction and the details!
fitsumbelay•1d ago
no single facet of this that I don't love
Surac•1d ago
not connected to this, but i wish i would find a c code example on how to draw a line with a width, without antialias while only setting each pixel once. this seems to be a real hard problem.
tubs•1d ago
You want to define a parallelogram or rectangle, turn it into edge equations, then iterate the spans.

Alternative is bresenham then for each point iterate a span in the minor axis.

Avshalom•1d ago
http://homepages.enterprise.net/murphy/thickline/index.html

pascal not C but you should be able to translate it pretty easy.

armitron•22h ago
This can be more accurately described as a hack: there are subtle bugs (e.g. CLOCK_REALTIME is not monotonic) and corner cases that are not taken into account that I can't find any strong reasons to recommend this. One would be better served by something like SDL or raylib or if minimalism is a strict requirement, RGFW [1].

[1] https://github.com/ColleagueRiley/RGFW/blob/main/RGFW.h

vrighter•22h ago
Where's the GUI part? This seems like a more limited SDL. There is literally zero GUI code in there, unless you count manually drawing individual pixels a GUI. The shape drawing example (NOT part of the library) shows code using the library to draw basic shapes pixel-by-pixel. That is the very thing a GUI library is supposed to do for you.