frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Windows 3.1 tiled background .bmp archive

https://github.com/andreasjansson/win-3.1-backgrounds
68•justsomehnguy•1h ago•15 comments

FCC Updates Covered List to Include Foreign-Made Consumer Routers

https://www.fcc.gov/document/fcc-updates-covered-list-include-foreign-made-consumer-routers
117•moonka•2h ago•59 comments

Autoresearch on an old research idea

https://ykumar.me/blog/eclip-autoresearch/
247•ykumards•5h ago•65 comments

No, Windows Start does not use React

https://pathar.tl/blog/no-windows-start-does-not-use-react/
12•pathartl•21m ago•2 comments

iPhone 17 Pro Demonstrated Running a 400B LLM

https://twitter.com/anemll/status/2035901335984611412
455•anemll•9h ago•232 comments

Ju Ci: The Art of Repairing Porcelain

https://thesublimeblog.org/2025/03/13/ju-ci-the-ancient-art-of-repairing-porcelain/
35•lawrenceyan•2d ago•4 comments

Show HN: Cq – Stack Overflow for AI coding agents

https://blog.mozilla.ai/cq-stack-overflow-for-agents/
29•peteski22•8h ago•13 comments

Local Stack Archived their GitHub repo and requires an account to run

https://github.com/localstack/localstack
142•ecshafer•5h ago•69 comments

Claude Code Cheat Sheet

https://cc.storyfox.cz
89•phasE89•2h ago•24 comments

IRIX 3dfx Voodoo driver and glide2x IRIX port

https://sdz-mods.com/index.php/2026/03/23/irix-3dfx-voodoo-driver-glide2x-irix-port/
16•zdw•1h ago•0 comments

Finding all regex matches has always been O(n²)

https://iev.ee/blog/the-quadratic-problem-nobody-fixed/
144•lalitmaganti•4d ago•36 comments

Dune3d: A parametric 3D CAD application

https://github.com/dune3d/dune3d
86•luu•1d ago•24 comments

Trivy under attack again: Widespread GitHub Actions tag compromise secrets

https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise
144•jicea•1d ago•54 comments

Two pilots dead after plane and ground vehicle collide at LaGuardia

https://www.bbc.com/news/articles/cy01g522ww4o
318•mememememememo•16h ago•509 comments

An incoherent Rust

https://www.boxyuwu.blog/posts/an-incoherent-rust/
97•emschwartz•9h ago•34 comments

Hacker mints $80M USD worth of USR stablecoins

https://bfmtimes.com/hacker-mints-80-million-worth-of-fake-stablecoins-and-swaps-them-for-eth/
50•timbowhite•2h ago•55 comments

US and TotalEnergies reach 'nearly $1B' deal to end offshore wind projects

https://www.lemonde.fr/en/international/article/2026/03/23/us-and-totalenergies-reach-nearly-1-bi...
306•lode•6h ago•216 comments

BIO: The Bao I/O Coprocessor

https://www.bunniestudios.com/blog/2026/bio-the-bao-i-o-coprocessor/
113•zdw•3d ago•26 comments

I built an AI receptionist for a mechanic shop

https://www.itsthatlady.dev/blog/building-an-ai-receptionist-for-my-brother/
200•mooreds•13h ago•223 comments

A retro terminal music player inspired by Winamp

https://github.com/bjarneo/cliamp
22•mkagenius•3h ago•0 comments

An unsolicited guide to being a researcher [pdf]

https://emerge-lab.github.io/papers/an-unsolicited-guide-to-good-research.pdf
159•sebg•4d ago•21 comments

Bombadil: Property-based testing for web UIs

https://github.com/antithesishq/bombadil
221•Klaster_1•4d ago•87 comments

Designing AI for Disruptive Science

https://www.asimov.press/p/ai-science
52•mailyk•5h ago•35 comments

America tells private firms to “hack back”

https://www.economist.com/united-states/2026/03/22/america-tells-private-firms-to-hack-back
97•andsoitis•11h ago•110 comments

Migrating to the EU

https://rz01.org/eu-migration/
816•exitnode•13h ago•629 comments

Digs: iOS app that syncs your Discogs collection and lets you browse it offline

https://lustin.fr/blog/building-digs/
42•rlustin•15h ago•16 comments

Pentagon Adopts New Limits for Journalists After Court Loss

https://www.nytimes.com/2026/03/23/business/media/pentagon-closes-journalists-work-area.html
16•doener•1h ago•7 comments

“Collaboration” is bullshit

https://www.joanwestenberg.com/collaboration-is-bullshit/
284•mitchbob•22h ago•156 comments

Chat GPT 5.2 cannot explain the German word "geschniegelt"

https://old.reddit.com/r/ChatGPT/comments/1r4goxh/chat_gpt_52_cannot_explain_the_word_geschniegelt/
47•doener•2h ago•7 comments

How I'm Productive with Claude Code

https://neilkakkar.com/productive-with-claude-code.html
93•neilkakkar•3h ago•72 comments
Open in hackernews

Tabular Programming: A New Paradigm for Expressive Computing

https://sam.elborai.me/articles/tabular-programming/
121•dgellow•11mo ago

Comments

turtleyacht•11mo ago
See also: Table-oriented Programming (2002) - https://news.ycombinator.com/item?id=29735298 - Dec 2021 (126 points, 87 comments)
dgellow•11mo ago
The name is kind of similar but they are unrelated concepts
turtleyacht•11mo ago
Maybe control tables? https://web.archive.org/web/20121024051826/http://www.geocit...

What I like about this submission is arguments are themselves functions, so each call lays out its dependencies up front.

Johnbot•11mo ago
This is giving me flashbacks to RPG II - https://en.m.wikipedia.org/wiki/IBM_RPG_II
diggernet•11mo ago
That very first example instantly brought RPG to mind for me, too.
eschneider•11mo ago
Yeah, but without the cool programming forms. :/
poulpy123•11mo ago
Maybe it's interesting as a scripting language for a music sequencer that has few keys, but I can't even think of a use case for regular computers
dgellow•11mo ago
It’s not intended for a regular computer
econ•11mo ago
Maybe we have to try harder? My first thought was db queries pointing at html templates and/or css selectors where to put the output. That you have to pick working commands could be useful there.
lantry•11mo ago
> this tabular programming environment isn't just about cramming programming capabilities into a Game Boy-like device. It's about rethinking programming from the ground up for a specific hardware context. (...)

> By rethinking how programming can work within tight hardware constraints, we might discover new approaches that actually enhance rather than limit creative expression.

This speaks to me. As a software engineer, I work with abstractions all day, and it is impossible for me to fully understand the system that I'm building. I often think I would be much happier if I worked on a product that I could actually understand from top to bottom and know all the details.

lo_zamoyski•11mo ago
> This speaks to me. As a software engineer, I work with abstractions all day, and it is impossible for me to fully understand the system that I'm building. I often think I would be much happier if I worked on a product that I could actually understand from top to bottom and know all the details.

For a programmer, the “system” is in a sense incidental to the domain and language you’re programming in. It has relevance only insofar as practicality demands it (like an astronomer knowing how to operate a telescope). There is no intrinsic value to this knowledge as such. Anything ‘beneath’ your language is implementation detail whose purpose is to simulate your language, program, whatever. It has nothing to do with your language and does not explain the language; any appropriate system that can simulate it will do.

bombela•11mo ago
but it has a tremendous impact on performance. making it hard to ignore.
lo_zamoyski•11mo ago
Hence the comparison with telescopes. But knowledge of a tool is not to be confused with the field itself. We are not programming computers per se. We are using computers to simulate formalisms that can be carried out by people, in our heads or on paper, largely because it is tedious, labor intensive, and would take us longer.

The intellectual distinction is essential and, sadly, one that many in the field seem not to understand. Many seem to subscribe to a kind of "computer atomism" which installs the physical device in the center as the really real with abstractions as epiphenomena or illusions; the real stuff, they claim, are the assembly - nay! - the bits - nay! - the atoms - nay! - ... No. Assembly, bits, atoms, these are all irrelevant and incidental as far as the language and the formalism we're using is concerned. They are details that concern the instrument, not the language, which stands on its own.

bombela•11mo ago
I agree with not placing the computer at the center. After all it's a tool.

But I struggle with the idea that we can ignore the technical details. After all, even the highest abstraction comes from the physicality of the universe.

But maybe you are saying that the limitations of a tool shouldn't forbid you from thinking at the higher language level.

Or maybe I am just not enlightened enough to understand your point, to which I can only apologize.

lantry•11mo ago
1) all abstractions leak. We use them anyway because they are helpful, but you have to be expert enough to know when they're leaking, and know what to do about it. This invariably requires understanding the system underneath the abstraction.

2) I disagree that there is "no intrinsic value" in this knowledge. Even in purely monetary terms, my salary is much higher because I like to look underneath the abstraction. I agree that in our modern software systems that it is not practical to understand everything, and it's usually most "cost efficient" to operate at/near the highest abstraction layer. But this does not bring me joy! and what "intrinsic value" is there besides happiness?

sokoloff•11mo ago
> actually understand from top to bottom and know all the details.

In practice, you’re always going to hand-wave away some level of abstraction, whether that’s at the JavaScript, C++, C, LLVM, native ISA, CPU microcode, logic gates, transistor, chemistry, or physics level.

https://xkcd.com/435/

econ•11mo ago
One could make a hardware simulator and code in low level components. For some applications it would make things a lot easier, everything else would be hard. It seems fun to be able to build the physical app.
sokoloff•11mo ago
You (and GGP) might enjoy:

https://www.nand2tetris.org/

lantry•11mo ago
also https://nandgame.com/
hwpythonner•11mo ago
This reminds me of ladder diagrams from industrial control systems—not because of the domain, but because both emphasize a linear, visually structured flow of logic.
topspin•11mo ago
The first glance of the code made me think of CNC g-code. Some older machines I've seen have tabular form similar to this, only because they have segmented displays. I suspect these concepts aren't as "new paradigm" as the author imagines.

Most such code is generated elsewhere and loaded into industrial machines. However, technicians frequently find themselves navigating and editing code directly at the console. Some are entirely capable of programming all of the steps involved in a complex operation directly in these primitive languages.

hcarvalhoalves•11mo ago
When I first read the title, I had something in mind, but this is actually about structuring the code itself as a fixed-size table.

Here's a different take on thinking about tables:

https://www.youtube.com/watch?v=b5UK-VHbJlQ

debugnik•11mo ago
Following GPU industry standards, this should be called a General Purpose Music Tracker.

I wonder if this UI would work well for logic programming instead of stack-based.

dimatura•11mo ago
that would be pretty confusing, as it happens M8 was partially inspired by another tracker called LGPT (Little Game Park Tracker, named after the device it ran on).
dgellow•11mo ago
Interesting, I didn’t know. I thought it was a direct descendants of LSDJ. I have an old school PSP around, I will try LGPT over the weekend :)
gregschlom•11mo ago
I've only skimmed the article but to me it sounds like what the author wants is essentially assembly language, where everything fits in 5 columns: label, opcode, 2 operands, comment.

It's not great for usability though :)

aniou•11mo ago
Yes-and-no, I think. Limited usability of assembly language comes from limited resources (registers, operations) available to programmer, that leads to (so) many simple steps for more complicated tasks.

But, high-level language can offer a very interesting possibilities, even if it was not created for such kind of programming. For example, some time ago I made another attempt to emulate family of 65xxx. Previous versions were written in typical manner, like work of every other programmer on Earth.

A new approach, when a code was written in more regular way (see link below), like mentioned tabular-one, gave me excellent results. I was able to fully understood a program and processor logic and finally I was able to re-create a most magical command for 65xx: SBC/ADC with BCD support in very straightforward and clear way (especially for a cpu-like logic).

For example: https://github.com/aniou/morfeo/blob/a83f548e98bd310995b3c37...

There is one thing that not fits into pure, tabular-like code logic: more complicated conditionals and loops. But maybe, in future...

herr_shield•11mo ago
I have come to the same conclusion for a tracker that I am working on that is targeting the steam deck.

I designed an instruction set that is reasonably convenient to input via the gamepad controllers. Instead of typing, one selects instructions and operands from lists of options. It's surprisingly fluid to input and this makes it impossible to input invalid programs.

dgellow•11mo ago
What’s your project? I would love to try it out :)
herr_shield•11mo ago
it’s called shield tracker and is available here: https://bleep.toys/stracker
dgellow•11mo ago
Awesome, thanks for sharing! Added to my weekend todo list :D
dgellow•11mo ago
My current language is based on Forth, which is a better fit as that allows me to use more horizontal space and not have to think about registries and memory addresses. Similar to Forth my tabular format works with a stack based model where data flows implicitly between expressions.
sedatk•11mo ago
> At first glance, limiting each function to just five expressions seems incredibly restrictive. But this constraint actually encourages breaking down complex operations into atomic, composable functions - which tends to produce more maintainable code.

The author conveniently disregards the other extreme end of this, putting every instruction in a separate function, which is neither readable nor maintainable.

What I see here is similar. The code snippets I’m looking at look neither readable nor maintainable.

sanderjd•11mo ago
Yeah it's an interesting idea, but trying to read this code reminds me a lot of reading assembly. It's charming in its way, but there's also a very good reason we tend to reserve assembly code to very specific purposes nowadays.
dgellow•11mo ago
Agreed, and it is a very specific purpose. Note that it is based on Forth, not assembly
dgellow•11mo ago
Two points:

1. This is specifically designed for portable hardware with minimal controls - not general-purpose programming.

2. Like music trackers, unfamiliarity makes it look complex, but the rules are simple and consistent once learned.

The five-expression limit creates a natural balance in function decomposition that's neither too granular nor too monolithic. While the code might look strange initially, the structured format actually enhances readability once you're fluent in the paradigm - just as tracker musicians can quickly "read" musical patterns that would appear cryptic to others.

Readability is highly contextual and shaped by our existing paradigms. This article/concept explores whether different constraints might offer unique advantages for creative coding in specific environments.

sedatk•11mo ago
> 1. This is specifically designed for portable hardware with minimal controls - not general-purpose programming.

I don't understand why portable hardware warrants a new programming model. What does make C such a significantly worse candidate for the examples given in the article?

> 2. Like music trackers, unfamiliarity makes it look complex, but the rules are simple and consistent once learned.

Columns and rows in tracker music have specific meanings: each column corresponds to a channel, and each row corresponds to a point in time. Not in this case. In this layout, columns are arbitrary, and their meaning changes every row. Rows don't have any more meaning than regular code. I don't think they're equivalent.

dgellow•11mo ago
1. Because of hardware limitations. Writing text using arrow keys and 4 buttons is a real pain, error prone, requires formatting, uses way too much horizontal space. C would also be a horrible choice for creative programming, you cannot quickly tweak things around, iteratively and interactively develop your program. That doesn't match the tracker workflow I'm interested in.

2. In my concept columns and rows do have specific meaning too. Each row is a function (known as words in Forth, the language that is the closest to what I'm doing and a main source of inspiration). Columns have clear meaning, as mentioned in the article:

- function name

- input

- expressions 1-5

- output

That does match quite closely what my m8 tracker does in phrase view, where columns are:

- note

- volume

- instrument

- effects 1-3

I'm not sure what made you think that columns and rows are arbitrary.

For context, the main use case is to generate demo-scene like animations for my music. I would hate to write C on such a limited device for that purpose — in fact that's exactly what I do not want and the reason for this project to exist.

sedatk•11mo ago
Oh I missed that you used this to write code *on* that platform, not *for* it. Okay now it makes sense.

About columns, I pretty much meant expressions 1-5. They are arbitrary, unlike sound channels, there is no special meaning to, say, expression 2.

But since you use this to code ON the device, your tradeoffs are sensible.

dgellow•11mo ago
Yes, I should have made that clearer, I see now it’s not obvious that I want the device itself to be the development environment :)

Pretty niche case, but I feel there is something to explore here

gatane•11mo ago
Forth mentioned, btw.
dgellow•11mo ago
I initially used the title « tabular Forth », as that has been one of my main source of inspiration. But eventually decided against and removed most mentions of the language, because at this stage I’m still not set on a specific design and choice of language, and prefer to keep my options open without feeling pressured by my old self (if that makes sense)
dimatura•11mo ago
Didn't expect to see the M8 when opening this. It's truly an amazing device, and the tables are a really awesome addition to the typical audio modulation option.
kats•11mo ago
Some random thoughts, might be interesting (or not).

Some things that really do fit into tables, where there's no empty fields in the rows:

- Relational databases

- Hardware circuit truth tables

- Assembly language opcodes

- FPGA compiler output

- Matrix multiplication. Or some GPU programs e.g. if you want to have a conditional statement using multiply-add, then 'if (cond) then x1 else x2' would be 'out = (cond * x1) + (cond * x2)'.

Those things have good performance in one way or another. But it's not easy to make all the application logic fit into a table-based schema.

e.g. Why does someone choose a python web server framework which sends and receives JSON. It's really super easy to extend and add something without knowing what you'll need in advance.

But if you try to fit that into a table, you'll have to change the table schema for everything to try to best fit what the program does right at the moment. And then if there's one new extra complex or long-running function, it will never easily fit the same schema as the others. You'll have to break the big function down into some smaller common operations.