frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

I put my whole life into a single database

https://howisfelix.today/
202•lukakopajtic•3h ago•82 comments

Rebasing in Magit

https://entropicthoughts.com/rebasing-in-magit
9•ibobev•19m ago•0 comments

Intel Demos Chip to Compute with Encrypted Data

https://spectrum.ieee.org/fhe-intel
15•sohkamyung•47m ago•0 comments

FreeBSD 14.4-Release Announcement

https://www.freebsd.org/releases/14.4R/announce/
76•vermaden•3h ago•16 comments

The Gervais Principle, or the Office According to "The Office" (2009)

https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-or-the-office-according-to-the-office/
137•janandonly•3d ago•38 comments

Online age-verification tools for child safety are surveilling adults

https://www.cnbc.com/2026/03/08/social-media-child-safety-internet-ai-surveillance.html
58•bilsbie•1h ago•21 comments

Hisense TVs add unskippable startup ads before live TV

https://www.guru3d.com/story/hisense-vidaa-tvs-reportedly-add-unskippable-startup-ads-before-live...
29•akyuu•31m ago•19 comments

Sending Jabber/XMPP Messages via HTTP

https://gultsch.de/posts/xmpp-via-http/
7•inputmice•28m ago•1 comments

Yann LeCun's AI startup raises $1B in Europe's largest ever seed round

https://www.ft.com/content/e5245ec3-1a58-4eff-ab58-480b6259aaf1
179•ottomengis•3h ago•104 comments

Practical Guide to Bare Metal C++

https://arobenko.github.io/bare_metal_cpp/#_abstract_classes
45•ibobev•3d ago•18 comments

Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy

https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md
246•pjmlp•5h ago•242 comments

Caxlsx: Ruby gem for xlsx generation with charts, images, schema validation

https://github.com/caxlsx/caxlsx
18•earcar•3d ago•1 comments

Show HN: DD Photos – open-source photo album site generator (Go and SvelteKit)

https://github.com/dougdonohoe/ddphotos
8•dougdonohoe•44m ago•0 comments

Two Years of Emacs Solo

https://www.rahuljuliato.com/posts/emacs-solo-two-years
297•celadevra_•13h ago•99 comments

LoGeR – 3D reconstruction from extremely long videos (DeepMind, UC Berkeley)

https://loger-project.github.io
88•helloplanets•7h ago•22 comments

Lotus 1-2-3 on the PC with DOS

https://stonetools.ghost.io/lotus123-dos/
136•TMWNN•3d ago•50 comments

TCXO Failure Analysis

https://serd.es/2026/03/06/TCXO-failure-analysis.html
57•zdw•3d ago•20 comments

On Being a Dad

https://www.derekthompson.org/p/three-reasons-to-be-a-parent
11•NaOH•2d ago•4 comments

Germany's Solar Boom Eases Power Costs as Gas Price Jumps

https://www.bloomberg.com/news/articles/2026-03-06/germany-s-solar-boom-eases-power-costs-as-gas-...
18•toomuchtodo•25m ago•6 comments

Building a Procedural Hex Map with Wave Function Collapse

https://felixturner.github.io/hex-map-wfc/article/
534•imadr•20h ago•75 comments

No, it doesn't cost Anthropic $5k per Claude Code user

https://martinalderson.com/posts/no-it-doesnt-cost-anthropic-5k-per-claude-code-user/
322•jnord•14h ago•236 comments

Traffic from Russia to Cloudflare is 60% down from last year

https://radar.cloudflare.com/traffic/ru?dateRange=52w
15•secondary_op•1h ago•1 comments

EVi, a Hard-Fork of Vim

https://codeberg.org/NerdNextDoor/evi
25•todsacerdoti•4h ago•24 comments

Ask HN: Remember Fidonet?

67•ukkare•2h ago•44 comments

The hidden compile-time cost of C++26 reflection

https://vittorioromeo.com/index/blog/refl_compiletime.html
47•SuperV1234•3d ago•20 comments

Optimizing Top K in Postgres

https://www.paradedb.com/blog/optimizing-top-k
108•philippemnoel•1d ago•13 comments

Is legal the same as legitimate: AI reimplementation and the erosion of copyleft

https://writings.hongminhee.org/2026/03/legal-vs-legitimate/
515•dahlia•22h ago•522 comments

JSLinux Now Supports x86_64

https://bellard.org/jslinux/
350•TechTechTech•21h ago•110 comments

Show HN: Remotely use my guitar tuner

https://realtuner.online/
225•smith-kyle•3d ago•50 comments

PgAdmin 4 9.13 with AI Assistant Panel

https://www.pgadmin.org/docs/pgadmin4/9.13/query_tool.html#ai-assistant-panel
3•__natty__•1h ago•0 comments
Open in hackernews

Practical Guide to Bare Metal C++

https://arobenko.github.io/bare_metal_cpp/#_abstract_classes
45•ibobev•3d ago

Comments

pjmlp•1h ago
While tag dispatching used to be a widely used idiom in C++ development, it was a workaround for which nowadays there are much better alternatives with constexpr, and concepts.
tialaramex•55m ago
Surely one of the obvious reasons you'd want tagged dispatch in C++ isn't obviated by either of those features? Or am I missing something?

Suppose Doodads can be constructed from a Foozle either with the Foozle Resigned or with the Foozle Submitted. Using tagged dispatch we make Resigned and Submitted types and the Doodad has two specialised constructors for the two types even though substantively we pass only the Foozle in both cases.

In a language like Rust all the constructors have names, it's obvious what Vec::with_capacity does while you will still see C++ programmers who thought constructing a std::vector with a single integer parameter does the same because it's just a constructor and you'd need to memorize what happens.

quuxplusone•26m ago
I wouldn't call the idiom you describe (like with unique_lock's defer_lock_t constructor) "tag dispatch"; to me, one defining characteristic of the "tag dispatch idiom" is that the tag you're dispatching on is computed somehow (e.g. by evaluating iterator_traits<T>::iterator_category()). The idiom you're describing, I'd call simply "a constructor overload set" that happens to use the names of "disambiguation tags" to distinguish semantically different constructors because — as you point out — C++ doesn't permit us to give distinct names to the constructor functions themselves.

For more on disambiguation tags, see https://quuxplusone.github.io/blog/2025/12/03/tag-types/

and https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p39...

pjmlp•5m ago
You use if constexpr with requires expressions, to do poor man's reflection on where to dispatch, and eventually with C++26, you do it with proper reflection support.
VorpalWay•1h ago
Why does the link go to the abstract classes heading, halfway down the page?
menaerus•1h ago
Outdated, opinionated, platform-specific, and incorrect.
saltmate•1h ago
This seems very well written, but has a lot of requirements/previous knowledge required by a reader. Are there similar resources that fill these gaps?
birdsongs•34m ago
I only skimmed the book, but I think this is an artifact of the embedded engineering side. (Something I do professionally.)

I've seen a lot of new people come into my team as juniors, or regular C/C++ engineers that convert to embedded systems. There is a real lack of good, concise resources for them, and the best result I've had is just mentoring them and teaching as we go.

You could look for an intro to embedded systems resource. Or just get a dev kit for something. Go different than the standard Pi or Arduino. Try and get something like a STM32G0 dev kit working and blinking its lights. It's less polished, but you'll have to touch more things and learn more.

If you want, core areas I would suggest to research are the very low level operations of a processor:

* How does the stack pointer work? (What happens to this during function calls?

* How do parameters get passed to functions by value, by reference? What happens when you pass a C++ class to a function by value? What is a deep vs shallow copy of a C++ object, and how does that work when you don't have an OS or MMU?

* Where is heap memory stored? Why do we have a heap and a stack? How do these work in the absence of an OS?

* The Program Counter? (PC register). What happens to this as program execution progresses?

* What happens when a processor boots, how does it start receiving instructions? (This is vague, you could read the datasheet for something like the STM32G0 microcontroller, or the general Arm Cortex M0 core.)

* How are data/instructions loaded from disk to memory to cache to register? What are these divisions and why do we have them?

* Basic assembly language, you should know how loads and stores work, basic arithmetic, checks/tests/comparisons, jump operations.

* How do interrupts work, what's an ISR, IRQ, IVT? How do peripherals like UART, I2C (also what are these?), handle incoming data when you have a main execution thread already running on a single core processor?

Some of this may be stuff you already know, or seem rudimentary and not exactly relevant, but they are things that have to be rock solid before you start thinking about how compilers for differently languages, like C++, create machine code that runs on a processor without an OS.

Assembly is often overlooked, but a critical skill here. It's really not that bad. Often when working with C++ (or Rust) on embedded systems, if I'm unsure of something, my first step is to decompile and dump the assembly to investigate, or step through the assembly with GDB via a JTAG probe on the target processor if the target was too small to hold all the debug symbols (very common).

Anyways, this may have been more than you were asking for. Just me typing out thoughts over my afternoon coffee.

skydhash•15m ago
I'm not a professional embedded engineer, but I do hack around it. Some books I collected:

- Applied Embedded Electronics: Design Essentials for Robust Systems by J. Twomey. It goes over the whole process making a device and what knowledge would be required for each. Making Embedded Systems, 2nd Edition by E. White is a nice complement.

- Embedded System Interfacing by M. Wolf describes the signals and protocols behind everything. It's not necessary as a book, but can help understand the datasheets and standards

- But you want to start with something like Computer Architecture by C. Fox or Write Great Code - Volume 1 - Understanding the Machine, 2nd Edition by R. Hyde. There are better textbooks out there, but those are nice introductions to the binary world.

The gist is that you don't have a lot of memory and CPU power (If you do, adapting Linux is a more practical option unless it's not suited for another reason). So all the nice abstractions provided by an OS is a no go, so you need to take care of the hardware and those are really finicky,

randusername•8m ago
I like Realtime C++ (Kormanyos) and Making Embedded Systems (White)

The former is probably more what you are looking for.

myrmidon•53m ago
> There are multiple articles of how C++ is superior to C, that everything you can do in C you can do in C++ with a lot of extras, and that it should be used even with bare metal development

An interesting perspective. Could turn it around as "everything you can do in C++ you can do in C with a lot less language complexity".

My personal experience with low-level embedded code is that C++ is rarely all that helpful, tends to bait you into abstractions that don't really help, brings additional linker/compiler/toolchain complexity and often needs significant extra work because you can't really leverage it without building C++ abstractions over provided C-apis/register definitions.

Would not generally recommend.

g947o•50m ago
Mind if I ask whether you speak of that from a professional embedded system engineer's perspective?
myrmidon•40m ago
I do. But talking about low-level embedded stuff here.

Generally, the more you deviate from your vendors "happy path", the more busy work/unexpected difficulties you will run into, and a solid grasp of how exactly architecture and toolchain work might become necessary (while staying on the "happy path" allows you to stay blissfully unaware).

technothrasher•32m ago
I struggle with this deviating from the vendor's "happy path" often. I mostly use the STM32 chips, and I don't particularly care for their HAL library. I find it over complicated and often has bugs in it that I have to track down and fix. But boy is it nice to use their STM32CubeMX program to generate all the low level code so I can just get to work. I tend to end up building my own low level libraries during my free time because I enjoy it and it gives me a better idea of how the hardware is actually working, but using the STM32 HAL library to write my actual client code at work.
jonathrg•46m ago
You definitely need discipline to use C++ in embedded. There are exactly 2 features that come to mind, which makes it worth it for me: 1) replacing complex macros or duplicated code with simple templates, and 2) RAII for critical sections or other kinds of locks.
m00dy•50m ago
just use Rust, and never look back.
NooneAtAll3•22m ago
link has extra "#_abstract_classes" in it that it would be better without
randusername•15m ago
> Although there is an opinion that templates are dangerous because of executable code bloating, I think that templates are developer’s friends, but the one must know the dangers and know how to use templates effectively. But again, it requires time and effort to get to know how to do it right.

idk man, obviously I don't know much since I don't have my own online book, but templates would not be at the start of my list when selling C++ for bare-metal.

unit suffixes, namespaces, RAII, constexpr, OOP (interfaces mostly), and I like a lot of the STL in avoiding inscrutable "raw loops".

I like the idea of templates, but it feels like a different and specialized skillset. If you are considering C++ from C, why not ease into it?