Ежедневные Show HN

Upvote0

Show HN за 28 декабря 2025 г.

35 постов
62

Pion SCTP with RACK is 70% faster with 30% less latency #

pion.ly faviconpion.ly
5 комментариев6:05 PMПосмотреть на HN
SCTP is a low level protocol focused on reliable packet transmission. Unlike hopelessly flinging packets from one device to another, it makes sure that the packets are correct using CRC, removes duplicate packets, and allows for packets to be sent in any order.

Going into an established library, I thought that everything was already implemented and that there wasn't anything to do until I went through the existing issues and organized all the tasks and decided on an order. Sean DuBois (https://github.com/Sean-Der), one of the co-creators and current maintainers of Pion, an open-source pure Go implementation of WebRTC (which uses SCTP), introduced me to a dissertation that was written about improving SCTP from 2021 (https://duepublico2.uni-due.de/servlets/MCRFileNodeServlet/d...). To my surprise, the features in it weren't actually implemented yet, and generally went unused even though it depicted pretty big improvements. This came as a bit of a shock to me considering the countless companies and services that actively use Pion with millions of users on a daily basis.

This led to two things: 1) implement the feature (done by me) and 2) measure the performance (done by Joe Turki https://github.com/JoeTurki). If you're interested in reading more, please check out the blog post where we go over what SCTP is used for, how I improved it, and the effort that went into making such a large improvement possible.

This also marks a huge milestone for other companies and services that use SCTP as they can refer to the implementation in Pion for their own SCTP libraries including any real-time streaming platforms such as Microsoft Teams, Discord screen share, Twitch guest star, and many more!

For my personal background, please take a look at a comment below about what it was like for me to get started with open-source and my career related journeys. Thanks for reading!

31

What 4M posts reveal about going viral on Hacker News #

hn-ph.vercel.app faviconhn-ph.vercel.app
17 комментариев12:48 AMПосмотреть на HN
Hey HN,

We analyzed 4,010,957 Hacker News submissions to find what actually makes posts perform well.

Key findings: - 93.2% of posts never hit 50 points - Top 1% starts at 270 points - Certain keywords boost engagement by 1000%+

Built a free tool that scores your launch title and predicts viral potential: [link]

The entire 4M post dataset is available as a single 700MB .mv2 file if you want to run your own analysis.

28

Phantas – A browser-based binaural strobe engine (Web Audio API) #

phantas.io faviconphantas.io
10 комментариев8:38 PMПосмотреть на HN
Hi HN, I’m a new developer with Aphantasia (no mental imagery).

A side effect of this is that regaining focus after a distraction takes me a long time (the "23-minute lag"). I tried standard binaural beats, but I discovered a technical flaw: streaming compression (AAC/MP3 on Spotify/YouTube) often muddies the specific phase differences required for effective entrainment.

I realized that to get effective entrainment, I needed lossless audio. Since I couldn't stream lossless easily, I decided to generate it locally. I built Phantas – a browser engine that uses the Web Audio API to generate raw sine waves in real-time on the client side. This ensures mathematical precision with zero compression artifacts.

For audio it uses Native AudioContext for dual-oscillator generation (Left/Right channel split).

For visuals I pair the audio with a 490nm Cyan strobe. The hardest part was syncing the visual flash (using requestAnimationFrame) to the audio pulse without "drift" caused by JavaScript's event loop latency.

I built this primarily for myself. Subjectively, it has reduced my "ramp-up" time from ~20 minutes to about 5 minutes.

I’m releasing the generator for free (no login) to see if this works for others or if it's just my specific brain chemistry. I’d love feedback on:

- Audio/Visual Sync: Does the strobe feel tight on your specific browser/refresh rate?

- Intensity: Are the default 14Hz flickers too aggressive?

10

Databasus – open-source backup tool for PostgreSQL, MySQL and MongoDB #

databasus.com favicondatabasus.com
7 комментариев12:38 PMПосмотреть на HN
I had a post in the start of December about Postgresus 2.0: self hosted tool for PostgreSQL. Since then the project changed the name and added support of other databases: MySQL, MariaDB and MongoDB.

Website - https://databasus.com

GitHub - https://github.com/databasus/databasus

Main features:

- Scheduled backups for multiple PostgreSQL, MySQL, MariaDB and MongoDB databases

- Storage to S3, Cloudflare R2, Google Drive, Azure Blob, NAS, SFTP, rclone, etc.

- Notifications about backup status via email, Telegram, Slack, Discord, MS Teams and customizable webhooks

- Works with both self-hosted and managed PostgreSQL (RDS, Cloud SQL, etc.)

- Runs as a single Docker container or via Helm on Kubernetes, can be installed via script

- There are workspaces and role-based access with audit logs

9

Golazo – Live soccer updates in your terminal #

github.com favicongithub.com
2 комментариев11:10 PMПосмотреть на HN
Hey all!

I built Golazo because I wanted a minimal but effective way to get soccer live updates and catch up on finished matches right in my terminal. No browser tabs, no ads, no distractions – just clean match data where I already spend most of my day. I couldn’t find any actively maintained tool like this, so I thought it could be cool to build something just for what I need. It was a great learning experience and if it’s useful to other people, then even better!

Current features:

- Live match tracking with real-time score updates (90-second polling intervals)

- Minute-by-minute match events (goals, cards, substitutions)

- Finished match statistics and full event history - Goal notifications via beeep (macOS, Linux, Windows)

- 40+ leagues supported (and growing) with customizable preferences to limit what you fetch

- Smart caching: data cached for 5 minutes, polling only when viewing live matches

Technical details:

- Built with Go using Cobra for CLI, Charm’s Bubble Tea/Bubbles/Lip Gloss for the TUI

- Data from a trimmed-down version of the Fotmob API

- Cross-platform terminal rendering has been the biggest challenge – still working through some rough edges

Easy to install via install script or build from source. Pre-built binaries available for macOS, Windows, and Linux.

Would love to hear feedback from fellow terminal enthusiasts and soccer fans!

8

attainable – The fastest and easiest way to design and deploy APIs #

attainable.dev faviconattainable.dev
4 комментариев12:14 AMПосмотреть на HN
This began as a passion project and an opportunity to learn new tech.

I've always experienced frustration developing APIs, especially the RESTful CRUD style of data APIs. It always felt like I was repeating the same patterns over and over again, and that was tedium I didn't want. A little over a year ago, I wanted to learn more about Go, Firecracker microVM, and Svelte and thought "Could I build an API framework that was just a simple description of resources? What would that look like?"

That lead me to https://firecracker-microvm.github.io/, which landed me on https://fly.io, then https://rqlite.io, and the further I got into it, the more I really liked what I had. It's been over a year of learning and trying out all forms of tooling, CLIs, LSPs, and finally I landed on this.

So I decided to try my hand at making this a product. I'd really enjoy feedback about it and whether it's something folks would use. Here's hoping others feel the way I do about APIs and the developer experience building them!

5

I built an open-source wallpaper gallery for GitHub repos #

walle.theblank.club faviconwalle.theblank.club
2 комментариев1:49 PMПосмотреть на HN
Hey HN,

GitHub has hundreds of wallpaper repositories with thousands of images, but actually browsing them is painful. You either clone gigabytes locally or click through the file browser one by one.

So I built WALL·E Gallery. Use existing collections or Paste a repo URL→ instant gallery.

How it works: - Fetches repo tree via GitHub (no cloning) - Proxies thumbnails (~50KB instead of 10MB originals) - Works with private repos too (with GitHub token)

Infinite scroll, search, dark mode, mobile friendly, self-hostable. No accounts, no tracking.

Live: https://walle.theblank.club Source: https://github.com/amitray007/wall-e

Do share your suggestions/feedback. Also, I did find my desktop wallpaper from this.

3

Upload a song and get a finished music video (no editing, no prompts) #

musicvideogenerator.app faviconmusicvideogenerator.app
7 комментариев11:01 PMПосмотреть на HN
I built a small web tool that generates finished music videos from uploaded songs.

Most AI video workflows I tried required prompting scenes, generating clips, and editing everything on a timeline. I wanted the opposite: upload a track, pick a style, and get a video out in minutes.

It’s intentionally opinionated: no accounts, no subscriptions, and no editing controls. One-time payment per video ($2–$12), and you own the output.

I’d love feedback on whether this feels useful or too limiting.

3

Desktop‑2FA – offline, encrypted 2FA authenticator for your desktop #

github.com favicongithub.com
0 комментариев9:54 PMПосмотреть на HN
I’ve released desktop‑2fa v0.4.0 — an offline, encrypted TOTP authenticator designed for desktops, VMs, and air‑gapped environments.

Features: - AES‑GCM encrypted vault with Argon2 key derivation - No cloud, no phone, no telemetry - RFC‑compliant TOTP (SHA1/SHA256/SHA512) - Full CLI (add/list/generate/rename/remove/export/import/backup) - 99% test coverage - Zero external dependencies

GitHub: https://github.com/wrogistefan/desktop-2fa

I built this because I needed a reproducible, open-source 2FA tool for secure workstations and virtualized environments. Feedback welcome.

3

AI slop has flooded the template market #

4 комментариев4:45 AMПосмотреть на HN
I was sourcing e-commerce templates for a client and ran into two bad options:

- expensive, locked-down ecosystems like Shopify - broken AI-generated junk

So I built Estrocom, an e-commerce template with Astro, Tailwind, and TypeScript, designed to be WCAG AA accessible, SEO-friendly, and mobile-first.

Live demo: https://estrocom.netlify.app

Source code: https://github.com/VBproDev/estrocom

Why it’s worth checking out:

- Accessibility: 0 issues detected by Axe and Lighthouse, WCAG AA contrast maintained - Performance: Sub-1s load time with strong Lighthouse scores - Mobile-first: Works from 360px up to large screens - Atomic design: Atoms, molecules, and organisms for scalability - Full shopping flow: Cart + product categorization - SEO-ready: JSON-LD schema and sitemap support

3

Better Git for KiCad #

paplix.io faviconpaplix.io
0 комментариев2:42 PMПосмотреть на HN
KiCad's text-based files should work great with Git, but reviewing schematic diffs in raw S-expressions is painful. Paplix renders visual diffs so you can actually see what changed between commits.
2

minfern – Type inference for JavaScript without transpilation #

github.com favicongithub.com
1 комментариев12:50 PMПосмотреть на HN
I wrote a type checker (minfern - https://github.com/sinelaw/minfern) for a subset of javascript with no transpilation. It accepts valid JS as input and allows a subset of JS code to pass the checking. There’s no transpilation or compilation needed. The input code can be run directly.

Try it online at: https://sinelaw.github.io/minfern/

It could be used for checking code targeting normal JS runtimes, or runtimes like mquickjs (though minfern is more strict but also allows things like ‘const’ which mquickjs doesn’t). minfern is based on the type system for Infernu, which I wrote back in 2015, but is less hacky and has a cleaner implementation.

Very simple example:

  function calculateTotal(product, quantity) {
    return product.price * quantity;
  }
  var item = {
    name: "Wireless Mouse",
    cost: 25 // Note the property name is 'cost', not 'price'
  };
  console.log(calculateTotal(item, 2));
Output:

  Error: Property 'price' not found in type {cost: Number, name: String}
      ╭─[ tests/example_error.js:11:13 ]
      │
   11 │ console.log(calculateTotal(item, 2));
      │             ───────────┬───────────  
      │                        ╰───────────── Property 'price' not found in type {cost: Number, name: String}
  ────╯
Type system features:

- Full type inference with principle typing, support for type annotations

- Parameteric polymorphism (aka “generic functions”)

- Structural typing with row-type polymorphism

- Object method typing with equi-recursive types (for self/“this”)

- Polymorphic object methods (still considered rank-1)

- Basic constraints “Plus a” and “Indexable a” to allow + and [] to apply to different types like numbers, strings, arrays.

This allows a subset of JS expressions to be checked.

Some JS idioms are not allowed by this system:

- No union types (design choice) - return values, variables, arrays, etc must have a single type. Currently it doesn’t support returning null/undefined either, this can be fixed in the future by adding Optional as a type, but makes principle typing harder.

- No sum types (yet) - this explains why I haven’t added Optional<T>, I think sum types will fit in the type system and are doable. Once added also enums could be expressed.

- Value restriction forbids reassigning to polymorphic variables after declaration (ML-style).

- As a result of the above - can’t use && / || operators like some people do in JS. The operators are required to have the same type on both sides (no allowing “undefined” on one side)

- No type coercion, converting a number to a string (for example) requires using String() constructor.

- And probably other limitations that people might see as a limitation rather than a feature of the type system.

Disclaimer: this type checker comes with NO WARRANTY. I am not a language expert. I didn’t prove soundness, and would love someone who’s an expert to look at it. That being said - it looks correct on all the tests I’ve tried. It’s based on HMF and other published type systems but combines things in a different way.

GitHub: https://github.com/sinelaw/minfern

2

Tiny acmecli for ACMEv2 account mgmt and for DNS-persist-01 #

github.com favicongithub.com
0 комментариев4:05 PMПосмотреть на HN
Over the years I've used many acme clients, and noticed that a lot of them often lack acmev2 account management functions. It is also non-trivial to migrate between them with keeping your acme account, especially certbot that stores your account private_key as JSON Web Key format, while others just use PEM. Also, most of them do not have an easy way "to import" your account, or it is not documented anywhere.

Keeping your acme account_uri is worth it every time you already have your CAA records in place and changing them is a chore, or takes too much time in a corporate environment.

This small acmecli.py is designed to help you migrate from client to client while re-using your account private key, convert your account private key betwen JWK and PEM, getting your account_uri and thumbprint, rekey or deactivate your acmev2 account(s) you no longer plan to use.

Mostly focused to help you setup stateless challenge methods, like stateless http-01 or upcoming dns-persist-01.

It does not obtain any certificates, it does not handle any challenges, but may be of help to you nonetheless, to augument your certbot, lego or uacme with missing functions.

Missing stuff: PEM keys could be PKCS#1 or PKCS#8, this tool can't detect or covert between them. It reads and outputs whatever your python cryptography is linked with (usually it reads any type, but outputs PKCS#8).

Cheers,

2

Warlocks – a real-time browser multiplayer game running at 60fps #

warlocks.icegaming.org faviconwarlocks.icegaming.org
0 комментариев7:39 PMПосмотреть на HN
I built Warlocks as a learning project around real-time multiplayer in the browser. The server is full authoritative and handles matchmaking, game state, collisions, and cooldowns over WebSockets.

It supports up to 8-player custom lobbies (easy to try with friends) and a quick 1v1 mode with raw matchmaking. If no opponent is found, it auto-matches you with a bot to keep wait times short.

I’d love feedback on gameplay feel, networking choices, or edge cases.

2

Word-GPT-Plus – Integrate AI and Agent Directly into Word #

github.com favicongithub.com
0 комментариев1:01 PMПосмотреть на HN
I'm sharing a project I've maintained for two years: a powerful Word plugin called Word-GPT-Plus. It integrates modern AI and agent capabilities directly into your document workflow. I recently completely rewrote the project with a modern UI and added an "Agent Mode" for handling complex, multi-step tasks within Word and multiple tools like web fetch/search, document manipulate can be used by LLM. Feedback and criticism are very welcome!

Repo: https://github.com/Kuingsmile/word-GPT-Plus

1

An AI eval based on a silly joke from an underrepresented language #

kapuskonda.vercel.app faviconkapuskonda.vercel.app
0 комментариев1:06 PMПосмотреть на HN
Marathi is an Indian language with 83 million speakers, but it's underrepresented as text online. There's a silly joke every Marathi-speaking kid learns: kapus kondyachi goshta (the story of the kapus konda). Jokes like this spread orally, not through text.

It's not a real joke. There's no punchline. It's pure infinite-loop trolling—the kind of thing kids use to annoy each other or adults use to tease children.

Someone asks: "Can I tell you the story of the kapus konda?"

You say yes, no, whatever. Doesn't matter. There is no story. Your answer gets echoed back, and the question repeats. Forever.

"No." "What do you mean 'no'? Can I tell you the story of the kapus konda?" "Fine, tell me." "What do you mean 'fine, tell me'? Can I tell you the story of the kapus konda?"

That's it. That's the whole joke.

I turned this into an AI eval: https://kapuskonda.vercel.app

The words "kapus konda" mean nothing coherent, at least AFAIK, although kapus = cotton, konda = bran. So models that don't know the joke try to make sense of it. They hallucinate elaborate stories.

I tested 31 models two ways: recognizing the joke when someone initiates it, and performing the joke themselves. None of them got it.

Bonus: with web search enabled, Claude Opus 4.5 (on Claude.ai) passed. The gap is real, but retrieval helps.

All prompts, responses, and scoring visible on the site.

Feedback welcome. This is my first eval and I'm sure there's stuff I got wrong.

Also curious: does your language/culture have a something like this that would make for a good eval?

1

Git-walkthrough – Learn unfamiliar codebases by walking through history #

github.com favicongithub.com
0 комментариев8:46 PMПосмотреть на HN
Built this because I kept getting lost trying to understand how codebases evolved. git-walkthrough lets you navigate through commits with arrow keys and view diffs between them as uncommitted changes in VS Code.

Just run npx git-walkthrough in any repo and step through the commit history. Press 'd' to toggle diff mode, and it shows you what changed between commits right in your editor.

Handy for: * Understanding how an unfamiliar codebase evolved * Code reviews where you want to step through changes * Learning from open source projects

Auto-restores your git state when you quit so nothing gets messed up.

https://github.com/mikealche/repo-walkthrough

Would love to hear what you think!