frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
1•gmays•1m ago•0 comments

Show HN: Zest – A hands-on simulator for Staff+ system design scenarios

https://staff-engineering-simulator-880284904082.us-west1.run.app/
1•chanip0114•2m ago•1 comments

Show HN: DeSync – Decentralized Economic Realm with Blockchain-Based Governance

https://github.com/MelzLabs/DeSync
1•0xUnavailable•6m ago•0 comments

Automatic Programming Returns

https://cyber-omelette.com/posts/the-abstraction-rises.html
1•benrules2•9m ago•1 comments

Why Are There Still So Many Jobs? The History and Future of Workplace Automation [pdf]

https://economics.mit.edu/sites/default/files/inline-files/Why%20Are%20there%20Still%20So%20Many%...
2•oidar•12m ago•0 comments

The Search Engine Map

https://www.searchenginemap.com
1•cratermoon•19m ago•0 comments

Show HN: Souls.directory – SOUL.md templates for AI agent personalities

https://souls.directory
1•thedaviddias•20m ago•0 comments

Real-Time ETL for Enterprise-Grade Data Integration

https://tabsdata.com
1•teleforce•24m ago•0 comments

Economics Puzzle Leads to a New Understanding of a Fundamental Law of Physics

https://www.caltech.edu/about/news/economics-puzzle-leads-to-a-new-understanding-of-a-fundamental...
2•geox•25m ago•0 comments

Switzerland's Extraordinary Medieval Library

https://www.bbc.com/travel/article/20260202-inside-switzerlands-extraordinary-medieval-library
2•bookmtn•25m ago•0 comments

A new comet was just discovered. Will it be visible in broad daylight?

https://phys.org/news/2026-02-comet-visible-broad-daylight.html
2•bookmtn•30m ago•0 comments

ESR: Comes the news that Anthropic has vibecoded a C compiler

https://twitter.com/esrtweet/status/2019562859978539342
1•tjr•31m ago•0 comments

Frisco residents divided over H-1B visas, 'Indian takeover' at council meeting

https://www.dallasnews.com/news/politics/2026/02/04/frisco-residents-divided-over-h-1b-visas-indi...
1•alephnerd•32m ago•0 comments

If CNN Covered Star Wars

https://www.youtube.com/watch?v=vArJg_SU4Lc
1•keepamovin•38m ago•0 comments

Show HN: I built the first tool to configure VPSs without commands

https://the-ultimate-tool-for-configuring-vps.wiar8.com/
2•Wiar8•41m ago•3 comments

AI agents from 4 labs predicting the Super Bowl via prediction market

https://agoramarket.ai/
1•kevinswint•46m ago•1 comments

EU bans infinite scroll and autoplay in TikTok case

https://twitter.com/HennaVirkkunen/status/2019730270279356658
5•miohtama•48m ago•3 comments

Benchmarking how well LLMs can play FizzBuzz

https://huggingface.co/spaces/venkatasg/fizzbuzz-bench
1•_venkatasg•51m ago•1 comments

Why I Joined OpenAI

https://www.brendangregg.com/blog/2026-02-07/why-i-joined-openai.html
19•SerCe•51m ago•11 comments

Octave GTM MCP Server

https://docs.octavehq.com/mcp/overview
1•connor11528•53m ago•0 comments

Show HN: Portview what's on your ports (diagnostic-first, single binary, Linux)

https://github.com/Mapika/portview
3•Mapika•55m ago•0 comments

Voyager CEO says space data center cooling problem still needs to be solved

https://www.cnbc.com/2026/02/05/amazon-amzn-q4-earnings-report-2025.html
1•belter•58m ago•0 comments

Boilerplate Tax – Ranking popular programming languages by density

https://boyter.org/posts/boilerplate-tax-ranking-popular-languages-by-density/
1•nnx•59m ago•0 comments

Zen: A Browser You Can Love

https://joeblu.com/blog/2026_02_zen-a-browser-you-can-love/
1•joeblubaugh•1h ago•0 comments

My GPT-5.3-Codex Review: Full Autonomy Has Arrived

https://shumer.dev/gpt53-codex-review
2•gfortaine•1h ago•0 comments

Show HN: FastLog: 1.4 GB/s text file analyzer with AVX2 SIMD

https://github.com/AGDNoob/FastLog
2•AGDNoob•1h ago•1 comments

God said it (song lyrics) [pdf]

https://www.lpmbc.org/UserFiles/Ministries/AVoices/Docs/Lyrics/God_Said_It.pdf
1•marysminefnuf•1h ago•0 comments

I left Linus Tech Tips [video]

https://www.youtube.com/watch?v=gqVxgcKQO2E
1•ksec•1h ago•0 comments

Program Theory

https://zenodo.org/records/18512279
1•Anonymus12233•1h ago•0 comments

Show HN: Local DNA analysis skill for OpenClaw

https://github.com/wkyleg/personal-genomics
2•wkyleg•1h ago•0 comments
Open in hackernews

Show HN: Typed-FFmpeg 3.0–Typed Interface to FFmpeg and Visual Filter Editor

https://github.com/livingbio/typed-ffmpeg
342•lucemia51•8mo ago
Hi HN,

I built typed-ffmpeg, a Python package that lets you build FFmpeg filter graphs with full type safety, autocomplete, and validation. It’s inspired by ffmpeg-python, but addresses some long-standing issues like lack of IDE support and fragile CLI strings.

What’s New in v3.0: • Source filter support (e.g. color, testsrc, etc.) • Input stream selection (e.g. [0:a], [1:v]) • A new interactive playground where you can: • Build filter graphs visually • Generate both FFmpeg CLI and typed Python code • Paste existing FFmpeg commands and reverse-parse them into graphs

Playground link: https://livingbio.github.io/typed-ffmpeg-playground/ (It’s open source and runs fully in-browser.)

The internal core also supports converting CLI → graph → typed Python code. This is useful for building educational tools, FFmpeg IDEs, or visual editors.

I’d love feedback, bug reports, or ideas for next steps. If you’ve ever struggled with FFmpeg’s CLI or tried to teach it, this might help.

Thanks! — David (maintainer)

Comments

TechDebtDevin•8mo ago
Good work!
yurifury•8mo ago
Great idea. Personally looking forward to a typescript version of this.
CyberDildonics•8mo ago
Typescript isn't mentioned anywhere.
yurifury•8mo ago
Yes.
CyberDildonics•8mo ago
What are you answering yes to?
internetter•8mo ago
The fact that this particular implementation doesn't involve typescript has nothing to do with the fact that OP wishes for a typescript implementation. Your original response was a statement of fact that the poster already knew, so they said "yes" to affirm their knowledge
CyberDildonics•8mo ago
No.
yurifury•8mo ago
Actually, yes.
matt-attack•8mo ago
I agree would love to see a typescript version.
teaearlgraycold•8mo ago
God’s native tongue
barake•8mo ago
Prompted the Jules preview to see what would happen. The implementation is pretty naive - there are much easier to read approaches I can think of. So not _awful_ considering the very short prompt I used.

Changes are on this branch for the curious:

https://github.com/matt-hensley/typed-ffmpeg/tree/feature/mu...

mikelinsi•8mo ago
Cool!
BGZq7•8mo ago
This is interesting, and it's good to see something that's actively developed, but it seems to have some of the same issues as ffmpeg-python:

- It doesn't appear to have any way of specifying filters that do not have inputs, such as "color"

- There is no way to provide flags to Popen, e.g. to specify subprocess.CREATE_NO_WINDOW to avoid CMD windows popping up in a GUI app on Windows. This isn't a big deal for running ffmpeg itself, because you can just ffmpeg.compile() then run it manually, but that can't be done for ffprobe with ffmpeg.probe().

Edit: OK, figured out the source filter thing, ffmpeg.sources.color. Is there a way to use arbitrary source filters, like vfilter/afilter can do for regular ones?

pbmahol•8mo ago
Unrelated, but my C++ solution: https://github.com/richardpl/lavfi-preview
chrisallick•8mo ago
this is what i was looking for: real time visual. very nice.
pietz•8mo ago
That looks awesome.
cb321•8mo ago
It is underappreciated that every single command-line option parser/toolkit is its own full configuration language with individual tools being "programs/configs" in that language. The lexical similarity of the zillion dialects (mostly due to Unix shells doing the word splitting for the eventual argv to be interpreted) masks what is really a dizzying diversity that for whatever reasons people think is much more uniform than it really is.

For example, I've done experiments running every single program in /usr/bin with --help and -h. The number of failures to get any useful help are a huge percentage. (The normalization of said percentage naturally is idiosyncratic to the exact system I ran that on).

Anyway, adding types to a complex one like ffmpeg may help more people realize this as well as offering practical benefits. So, great job!

plussed_reader•8mo ago
For the unitiated where was the conflict?
cb321•8mo ago
I'm not sure I understand your question. Are you asking for a list of the hundreds of commands which did nothing useful when run as cmd -h or cmd --help? I didn't save that, and as mentioned, it'd probably be different on your own systems/with your own packages.

If you want to try this at home, you should maybe either have GOOD BACKUPS HANDY OR DO IT WITHIN A VIRTUAL MACHINE/CONTAINER (EDIT: and almost certainly NOT AS SUPERUSER) also be ready to kill processes that are hanging waiting on stdin or somesuch. You're likely to have a least a few.

WITH THIS WARNING BEING GIVEN, you could just:

    (for cmd in /usr/bin/*; do echo "CMD: $cmd"; "$cmd" -h; done) >/tmp/dash-h 2>&1
    (for cmd in /usr/bin/*; do echo "CMD: $cmd"; "$cmd" --help; done) >/tmp/dashdash-help 2>&1
Of course, you could try /bin if that's any different (for me it's a symlink to the same dir as /usr/bin these days). You could also do single dash help.

If you want to accumulate some stats yourself, then you'll probably want to postprocess those output files.. So, you might also adapt the embedded echos to make it easy for whatever you like to do for that. Or, alternatively, you could re-direct each output to a per-command file with a little ${cmd##} massaging.

EDIT: and if you're asking what the CL syntax conflict was, well, I only meant to refer to "How to get any help at all - command with no args, with -h, -help, --help, -?, etc." as that is kind of the "very first question" on a user's mind. There are other syntactic conflicts (combining bool flags, option-value separation, unique prefix matching, etc., etc.).

aidenn0•8mo ago
I know it's not the point you were trying to make but I find "man foo" to be more reliable and useful than "foo --help" or "foo -h"
cb321•8mo ago
Fair enough. Finding documentation on the language is often step 1. :-) There are also giant POSIX PDFs around these days.

Also, I should have been more clear that while the CL parser toolkits are basically CfLangs/PLangs (maybe without loops, etc.), every command doing its own hand-rolled argv parser is basically its own totally unique language, probably doing only a subset of the 6..10 common conventions. It's probably not a great language, just something serviceable.

Basically, getopt wasn't good enough or easy enough or taught well enough, or done "soon enough". By the time it had come along, even within Bell Labs, they had probably grandfathered in old commands like `dd` and `find` (because "hey, I have a whopping 5 scripts that work with the old way!") with all their many & varied bespoke syntaxes.

Anyway, sadly, we only get our one try at "history" and many things are "sticky".

aidenn0•8mo ago
It was even worse on DOS; wildcard expansion happened in the program, not in the shell, so you didn't know if wildcard expansion was supported for an individual command!
sedatk•8mo ago
You still don't know if a Unix command would support processing multiple files even if the shell would expand wildcards. The tool might still process a single file and quit.
cb321•8mo ago
Another issue is that, around the same time getopt was appearing, the Bourne family of shells added `key1=val1 key2=val2 mycmd` syntax, accessed more simply with either `getenv("key1")`, etc. in a C program or simply `${key1-default1}` in a script, or in python `import os; E=os.environ.get; E("key1","default1")`. This is very lightweight on the mycmd impl as it can just start using the parameter wherever, possibly with string -> native value conversion, if needed.

So, though "shell specific" (right at a time when that started to mean anything), BOTH filename pattern matching aidenn0 mentions AND "long options of a sort" were built-in at the shell level on Unix. E.g., `help= mycmd` instead of `mycmd --help`. The inheritance of environment across fork/exec made these propagate which is both blessing (propagates through wrappers, so need not capture/repeat) and curse (have to worry about namespacing/re-use).

Basically, various timing effects had outsized influence - Unix & shell diversity and right around the time GNU introduced `mycmd --key[= ]value` combined with portability agendas, and possibly syntax/properties led to long options winning. The value proposition was "Use 'cmd --key=value', not 'key=value cmd' and users with any shell will have easy syntax". I dunno..It's also hard to attribute winning.

Today, for good or ill, most people seem to literally be unaware of `key=val mycmd` calling syntax even though for bash/POSIX "beat" the C shell/most things decades ago, around when bash added the better !! history and command-line editing that made tcsh popular because mistakes happen/etc. I believe the fish shell also dropped this syntax, though.

sedatk•8mo ago
Never heard of that syntax but it falls short on several fronts like unnamed or not-needed-to-be-named parameters. It's very easy to be confused by existence or lack of spaces in "help= cmd" too; am I assigning a variable or running a command? Not to mention that if you have an environment variable that clashes with an argument, it can have catastrophic results. I'm glad that it hasn't caught on.

On a similar note, I remember CP/M 3.0 had square bracket syntax for options like `DIR [WIDE] [ATTR=ANY]`. I think that one was probably the most intuitive one, although may not be the easiest to type. But DOS had already caught on with forward slash parameter prefixes which it also got from pre-bracket CP/M.

cb321•8mo ago
I think you may misunderstand - the idea is "in addition to", not "instead of" the usual syntax, `a=123 b=456 mycmd arg1 arg2 arg3 ..`, but it happens to provide a way to give "long names".

Also, it did catch on in the sense of being available, if not well known as much as POSIX (BSDs) /Bash (Linux) / Zsh (Mac OSX) caught on.

The spacing is as confusing or not as any Unix shell quoting, as in `a="1 2 3" b="4 5 6" mycmd "arg 1" "arg 2"`.

FWIW, I agree `help= cmd` looks a bit funny, though a user could probably also say, in the interests of clarity, `help=1 cmd` or `help='' cmd` if the convention was to ignore the value of `$help` and just go by its existence.

cmd [key1] arg1 [key2=val2] arg2 is interesting. Thanks for that!

sedatk•8mo ago
Oh, I've definitely misunderstood. Thanks for the clarification! I'm still glad that it hasn't caught on though :)
ape4•8mo ago
It seems that there should be a machine-readable description of the ffmpeg command line to generate this in multiple languages.
dejobaan•8mo ago
The visual tool seems especially fantastic. FFMPEG seems an example of where modular/visual programming could really help, since I don't know all the bits FFMPEG offers. Minor UX note: I expected DEL to destroy nodes/edges (Win11/Chrome). But all in all: awesome!
userbinator•8mo ago
It took this long for someone to finally come up with something resembling MS' DirectShow GraphEdit.
mertleee•8mo ago
This is cool, but does it support piping frames between entire commands? In my opinion that's when you start to unlock the most interesting forms of FFMpeg flows.
pdyc•8mo ago
this is great! let me plug my tool as well, in case you want to edit videos visually you can also use this tool https://newbeelearn.com/tools/videoeditor/ it generates ffmpeg commands.
Daiz•8mo ago
If you're going to do script-based video processing in Python, I would highly recommend just going straight for Vapoursynth[1] instead. It's built for the purpose from the ground up, is actively maintained with a decent commmunity and tooling, and isn't tied to ffmpeg's CLI.

[1] https://www.vapoursynth.com/

kopf•8mo ago
Can you explain to me why, despite "full type safety, autocomplete and validation" being the focus of "typed-ffmpeg", it makes sense to be passing width and height (or the x and y co-ordinates) as strings here?

``` .drawbox(x="50", y="50", width="120", height="120", color="red", thickness="5") ```

(from https://github.com/livingbio/typed-ffmpeg?tab=readme-ov-file... )

BGZq7•8mo ago
I think the issue is those aren't integers, they are ffmpeg expressions evaluating to integers. See e.g. this example from the ffmpeg documentation:

  Draw a 2-pixel red 2.40:1 mask:
  drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
Implementing type checking on this correctly would require something like a DSL.