frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Plwm – An X11 window manager written in Prolog

https://github.com/Seeker04/plwm
93•jedeusus•3h ago•14 comments

Lottie is an open format for animated vector graphics

https://lottie.github.io/
209•marcodiego•6h ago•84 comments

Path to a free self-taught education in Computer Science

https://github.com/ossu/computer-science
105•saikatsg•4h ago•54 comments

Ask HN: What are you working on? (May 2025)

35•david927•1h ago•98 comments

Writing your own CUPS printer driver in 100 lines of Python (2018)

https://behind.pretix.eu/2018/01/20/cups-driver/
109•todsacerdoti•5h ago•9 comments

Lisping at JPL (2002)

https://flownet.com/gat/jpl-lisp.html
75•adityaathalye•3d ago•16 comments

Claude 4 System Card

https://simonwillison.net/2025/May/25/claude-4-system-card/
495•pvg•15h ago•194 comments

Writing a Self-Mutating x86_64 C Program (2013)

https://ephemeral.cx/2013/12/writing-a-self-mutating-x86_64-c-program/
54•kepler471•4h ago•16 comments

Show HN: Zli – A Batteries-Included CLI Framework for Zig

https://github.com/xcaeser/zli
41•caeser•4h ago•12 comments

Design Pressure: The Invisible Hand That Shapes Your Code

https://hynek.me/talks/design-pressure/
110•NeutralForest•7h ago•29 comments

Show HN: DaedalOS – Desktop Environment in the Browser

https://github.com/DustinBrett/daedalOS
79•DustinBrett•5h ago•17 comments

Koog, a Kotlin-based framework to build and run Al agents in idiomatic Kotlin

https://github.com/JetBrains/koog
15•prof18•3d ago•0 comments

Denmark to raise retirement age to 70

https://www.telegraph.co.uk/world-news/2025/05/23/denmark-raise-retirement-age-70/
179•wslh•4h ago•432 comments

CAPTCHAs are over (in ticketing)

https://behind.pretix.eu/2025/05/23/captchas-are-over/
75•pabs3•20h ago•75 comments

Martin (YC S23) Is Hiring Founding AI/Product Engineers to Build a Better Siri

https://www.ycombinator.com/companies/martin/jobs
1•darweenist•4h ago

Wrench Attacks: Physical attacks targeting cryptocurrency users (2024) [pdf]

https://drops.dagstuhl.de/storage/00lipics/lipics-vol316-aft2024/LIPIcs.AFT.2024.24/LIPIcs.AFT.2024.24.pdf
79•pulisse•9h ago•56 comments

'Strange metals' point to a whole new way to understand electricity

https://www.science.org/content/article/strange-metals-point-whole-new-way-understand-electricity
81•pseudolus•7h ago•25 comments

Show HN: SVG Animation Software

https://expressive.app/expressive-animator/
151•msarca•10h ago•66 comments

Is TfL losing the battle against heat on the Victoria line?

https://www.swlondoner.co.uk/news/16052025-is-tfl-losing-the-battle-against-heat-on-the-victoria-line
55•zeristor•12h ago•80 comments

Tariffs in American History

https://imprimis.hillsdale.edu/tariffs-in-american-history/
55•smitty1e•1d ago•87 comments

Can a corporation be pardoned?

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5202339
36•megamike•5h ago•56 comments

What happens after you run Git push?

https://www.blacksmith.sh/blog/security
5•tsaifu•2d ago•0 comments

On File Formats

https://solhsa.com/oldernews2025.html#ON-FILE-FORMATS
100•ibobev•4d ago•64 comments

Dependency injection frameworks add confusion

http://rednafi.com/go/di_frameworks_bleh/
81•ingve•13h ago•88 comments

Reinvent the Wheel

https://endler.dev/2025/reinvent-the-wheel/
549•zdw•1d ago•209 comments

Programming on 34 Keys (2022)

https://oppi.li/posts/programming_on_34_keys/
49•todsacerdoti•8h ago•67 comments

Now you can watch the Internet Archive preserve documents in real time

https://www.theverge.com/news/672682/internet-archive-microfiche-lo-fi-beats-channel
96•LorenDB•2d ago•9 comments

Show HN: AI Baby Monitor – local Video-LLM that beeps when safety rules break

https://github.com/zeenolife/ai-baby-monitor
64•zeenolife•4d ago•45 comments

The Newark airport crisis

https://www.theverge.com/planes/673462/newark-airport-delay-air-traffic-control-tracon-radar
88•01-_-•4h ago•66 comments

Show HN: Wall Go – browser remake of a Devil's Plan 2 mini-game

https://schaoss.github.io/wall-go/
20•sychu•6h ago•7 comments
Open in hackernews

Show HN: Zli – A Batteries-Included CLI Framework for Zig

https://github.com/xcaeser/zli
41•caeser•4h ago
I built zli, a batteries-included CLI framework for Zig with a focus on DX and composability.

Key features:

- Typed flags with default values and help output - Rich formatting, and layout support - Command trees with isolated execution logic - It’s designed to feel good to use, not just to work. - Built for real-world CLI apps, not toy examples.

Would love feedback, feature ideas, or thoughts from other Zig devs.

repo here: https://github.com/xcaeser/zli

Comments

quotemstr•2h ago
No terminfo support? I'm probably tilting at windmills here, but I wish people wouldn't hardcode terminal escape codes. Considering zig's good interop with C, wiring up a call to tigetstr().

It's also important not to emit escape codes at all when TERM=dumb. (You'll get this behavior automatically if you implement color support by asking terminfo to the escape codes.)

    const c = @cImport({
        @cInclude("ncurses.h");
        @cInclude("term.h");
    });

    pub fn main() !void {
        // Initialize terminfo
        _ = c.setupterm(null, 1, null);

        // Get capability strings
        const setaf = c.tigetstr("setaf");  // set foreground
        const setab = c.tigetstr("setab");  // set background
        const sgr0 = c.tigetstr("sgr0");    // reset

        // Parameterize for red foreground
        const red = c.tparm(setaf, c.COLOR_RED, 0, 0, 0, 0, 0, 0, 0, 0);

        // Use it
        _ = c.printf("%sThis is red%s\n", red, sgr0);
    }
caeser•1h ago
open a pull request or at least an issue,

im always open to improvement, but i wanna keep it 100% zig.

quotemstr•1h ago
You're using libc already. There is no such thing as a pure zig program. Please, be a good citizen of the ecosystem.

If I were trying a program and saw that it disrespected me by ignoring a clear preference in my environment not to use colors, I wouldn't use that program again.

AndyKelley•37m ago
This is factually incorrect. While some operating systems use libc as the syscall ABI, this is not the case for Windows or Linux. On those systems, by default, Zig programs do not link libc; they make DLL calls or syscalls directly.

The project in question, however, does seem to link libc in the build script for no reason, as well as create a static library for no reason (it doesn't export any functions). As Loris pointed out to me today, this is likely caused by the `zig init` template highlighting static linking rather than modules, which is unfortunate since modules are the preferred way for Zig code to import other Zig code. We'll be adjusting that accordingly.

quotemstr•8m ago
> On those systems, by default, Zig programs do not link libc; they make DLL calls or syscalls directly.

Well, that makes me think a lot less of Zig. Bypassing libc makes programs less cooperative members of the broader ecosystem. There's value in libc being able to act as a userspace intermediary between programs and the kernel. (That's why Windows doesn't provide a way to make direct system calls: you're going to go through kernel32/user32/etc. -> ntdll.dll and _then_ the kernel.)

Go bypassing libc causes all sorts of annoying havoc, e.g. fakeroot stuff not working. This is not behavior to be encouraged.

And for what benefit? Being able to say you're libc-free, as if that were a feature not a bug? You don't even have split stacks.

Bypassing libc is fundamentally selfish behavior. It breaks a longstanding ecosystem coordination mechanism for zero actual benefit.

arp242•1h ago
> I wish people wouldn't hardcode terminal escape codes.

A bunch of commonly used escape codes are pretty much universally identical. I wrote about this before: https://www.arp242.net/safeterm.html

By and large I think terminfo/$TERM is outdated, or at least partly. It's a 1970s/80s thing when terminals all did radically different things. But that hasn't been the case for decades now. You still need it for some things (kind of), but basic support like colours? Not so much.

quotemstr•1h ago
Except all those times you don't want color at all.

> By and large I think terminfo/$TERM is outdated, or at least partly.

It's not outdated. It's a Chesterton's fence. Disregard for interoperability and feature discovery is why the terminal ecosystem has such immense difficulty getting traction on advanced features.

arp242•28m ago
NO_COLOR exists, and is fairly widely supported. TERM=dumb to disable colour was always a hack at best because this also disables other things like "clear line" and generally leads to weird output.

> It's a Chesterton's fence.

It's not. The world has changed. Everyone uses \x1b[1m to make text bold today but in the past there were a few dozen ways from different vendors of (hardware) terminals to make text bold. But this situation no longer exists. Like I already said: you still need it for some things – there's a reason I compiled a "safe terminal escape code" list. But for many things you don't.

quotemstr•2m ago
NO_COLOR is far from universally supported (even people who bother to check TERM don't know about it) and typically isn't configured to pass through sudo or ssh.
90s_dev•1h ago
Looks like a good zig argparse lib.

How do you like Zig compared to TypeScript? What would you like to see improved?

caeser•1h ago
zig is amazing. i am legit more productive in zig.

as Andrew (zig creator) said, zig makes you understand how computers work.

revskill•30m ago
Will zig include a rustimport similar to cimport ?